I have a program which uses a frame buffer object with multiple render targets (4 texture render targets) and a (32-bit) depth buffer attached as a render buffer.
If I setup the textures using:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, FBO.width(),FBO.height(), 0, GL_BGRA, GL_UNSIGNED_BYTE, 0);
everything works fine. But if I use
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB16F_ARB, FBO.width(),FBO.height(), 0, GL_BGRA, GL_FLOAT, 0);
it doesn’t work (blank screen and hangs system if I let it run for too long). There are no GL errors and the FBO reports as being fully setup (FBO dimensions are 640x480 but I get same problem using power of 2 size (128x128)).
If I use the RGB16F format with the same FBO but only enable COLOR_ATTACHMENT0_EXT in glDrawBuffers() then this also works, but I want to use MRT (for deferred rendering).
Is there a known issue with using RGB16F and MRT in this way? Seems from the specs and code examples this should work?
Linux, geforce 6800GT, driver 1.0-8774