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.
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.