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

Not to worry, updating driver to 1.0-9629 fixed it.