This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

glBlitFramebuffer from FBO -> Back Buffer leaves trails on Nexus 10

I reported this a while back against Android 4.3 on the old forums but since you guys blew away all the old content I'm reporting it again. I just updated my Nexus 10 to KitKat hoping the problem might be fixed but it's still there.

This was the old thread: http://forums.arm.com/index.php?/topic/17088-msaa-renderbuffer-back-buffer-blit-generates-invalid-operation-error-on-nexus-10/

Basically we're rendering off-screen to an FBO with an RGBA texture attached to COLOR_ATTACHMENT0. At the end of the frame we try to blit this image to the back buffer using glBlitFramebuffer. What we get in the back buffer is a trail of all previous frames as though we were never clearing the screen between frames. If I draw the image to the back buffer as a textured quad instead of using BlitFramebuffer then it looks correct, so I don't think it's really an issue in the source image (not to mention this code works fine on Desktop GL and other non-Mali ES 3.0 devices).

Screenshot_2013-11-14-10-00-36.png

Here's a link to an APK file that shows the problem. Just load any of the sample documents and try to manipulate the camera and you'll see the trails.

https://dl.dropboxusercontent.com/u/69927239/HOOPSAndroidViewer_nexus10_trails.apk

Parents
  • Hi Chris,

    Thanks for the info. I don't believe the build I linked to is using any MSAA surfaces though, it's just attempting to blit a regular single-sampled texture to the main FBO. We've already found that drawing a textured quad instead works fine for this case. We also found that when using MSAA and resolving first to a temporary surface, and then drawing that as a textured quad, the trails problem persists, so I think the work-around you suggested addresses this case.

    I have a couple questions about this approach if you or anyone can answer them. 1. Is using MSAA textures really the preferred solution for Mali devices? Even if this bug did not exist would we still be better off doing that? 2. We need to be able to blit msaa depth-stencil surfaces as well, can we expect that surfaces allocated with glRenderbufferStorageMultisampleEXT will also be affected by this bug (since BlitFramebuffer is our only option in this case).

    Thanks,

    Evan

Reply
  • Hi Chris,

    Thanks for the info. I don't believe the build I linked to is using any MSAA surfaces though, it's just attempting to blit a regular single-sampled texture to the main FBO. We've already found that drawing a textured quad instead works fine for this case. We also found that when using MSAA and resolving first to a temporary surface, and then drawing that as a textured quad, the trails problem persists, so I think the work-around you suggested addresses this case.

    I have a couple questions about this approach if you or anyone can answer them. 1. Is using MSAA textures really the preferred solution for Mali devices? Even if this bug did not exist would we still be better off doing that? 2. We need to be able to blit msaa depth-stencil surfaces as well, can we expect that surfaces allocated with glRenderbufferStorageMultisampleEXT will also be affected by this bug (since BlitFramebuffer is our only option in this case).

    Thanks,

    Evan

Children