FBO doesn't work?

Note: This was originally posted on 12th September 2011 at http://forums.arm.com

Sorry, this is a repost of a question I added to someone else's thread. It's a similar issue, but went unanswered. I kind of need to get an answer on this:

I create the FBO, bind it to a texture, check the status to make sure it's framebuffer complete, then set it to the rendering buffer, and call DrawElements. DrawElements fails with "GL_INVALID_FRAMEBUFFER_OPERATION" error. This is a bit of a mystery since I check the completeness status on the line immediately prior to the draw call and it claims to be framebuffer complete.

Do the settings on the texture object matter, e.g. repeat/linear/reflect. Does Mali require me to specify a depth or stencil buffer? Does it require an alpha channel?

This code works on Tegra2 and Adreno 205. Not sure why Mali doesn't like it.

Cheers!


Edit: Added example Android code that doesn't work as it should on the SGS2.
Parents
  • Note: This was originally posted on 19th September 2011 at http://forums.arm.com

    Hiya,

    I've started to look into the APK on a Samsung Galaxy SII. It was forced to close so I looked at the logcat output and was able to see the shader was failing to compile. This is because the shader programs normalmap_ps.txt and normalmap_vs.txt attempt to overload the dot() function. Since this is a built-in function in ESSL, the compiler throws an error. I fixed this by removing the overloaded function to let the progam use the built-in.

    The next error is a problem with glDrawElements(), and it seems the application is trying to pass a type of GL_UNSIGNED_INT, when the spec clearly states that only byte and short are permitted.

    I've fixed those two issues and now there's no crash, but I still only see a black screen. I will continue to investigate, as I have my own NDK FBO example which works fine and there's no reason this shouldn't work if the API is used correctly.

    Cheers, Pete
Reply
  • Note: This was originally posted on 19th September 2011 at http://forums.arm.com

    Hiya,

    I've started to look into the APK on a Samsung Galaxy SII. It was forced to close so I looked at the logcat output and was able to see the shader was failing to compile. This is because the shader programs normalmap_ps.txt and normalmap_vs.txt attempt to overload the dot() function. Since this is a built-in function in ESSL, the compiler throws an error. I fixed this by removing the overloaded function to let the progam use the built-in.

    The next error is a problem with glDrawElements(), and it seems the application is trying to pass a type of GL_UNSIGNED_INT, when the spec clearly states that only byte and short are permitted.

    I've fixed those two issues and now there's no crash, but I still only see a black screen. I will continue to investigate, as I have my own NDK FBO example which works fine and there's no reason this shouldn't work if the API is used correctly.

    Cheers, Pete
Children
No data
More questions in this forum