• Use an intermediate renderbuffer when blitting between texture arrays…

    … on adreno devices
    
    When the texture cache is grown we allocate a larger texture array
    then copy each layer of the old array in to the new one. To perform
    this copy we use use glBlitFramebuffer, with the read and draw
    framebuffers bound to the correct layer in the old and new textures.
    
    Unfortunately on Adreno devices this does not work. glBlitFramebuffer
    always writes to the 0th layer of the texture bound to the draw
    framebuffer. glCopyTexSubImage3D also does not work correctly - it
    always reads from the 0th layer of the texture bound to the read
    framebuffer.
    
    As a workaround, we use glBlitFramebuffer to blit from the old texture
    in to a temporary renderbuffer, then use glCopyTexSubImage3D to copy
    from that renderbuffer to the new texture.
    jamienicol committed Nov 20, 2018