androidopengl-esandroid-ndktegra

Is the OES_framebuffer_object extension broken on Tegra based devices?


We port some OpenGL ES 1.x code which use FBO extension (GL_OES_framebuffer_object) to Android and got the problems with Tegra based devices (Tegra 2, Tegra 3). The problem is that while devices report GL_OES_framebuffer_object extension in the list of supported extensions, the part of functionality seems to be broken and in particular, glGetIntegerv() function doesn't accept any extension-related constants (e.g. GL_FRAMEBUFFER_BINDING_OES) reporting GL_INVALID_ENUM error. At the same time, other extension-related functions are work fine.

The devices we test on are Nexus7 and Acer A500.


Solution

  • It appears that on Tegra devices you need to set the bit depth to 16, for it to work. Once we did that in MonoGame, games worked correctly on Nexus 7 and Acer500.

    D.