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

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