PDA

View Full Version : Framebuffer blit on float targets



Filip
10-23-2008, 10:04 AM
I have a lot of problems with FBOs and multisample FBOs when using float as the internal format.

Purpose:
1 Draw scene to Float Multisampled FBO (called FBO_MS) (renderbuffers as storage)
2 Blit FBO_MS to FBO2 ( textures as storage)
3 draw textures from FBO2 to fullscreen quad in order to apply final tonemapping shader (etc)

Notes:
A: texture target is NPOT GL_TEXTURE_2D (RECTS have been tested with the same problems)
B: all floats are GL_RGBA16F_ARB
C: all depth buffers and depth textures are GL_DEPTH_COMPONENT
(D: There are no problems rendering regular float textures)
(E: There are no problems if the internal format is of standard RGBA8 type for example)
(F: There are no problems to blit from MS float FBO to RGBA8 FBO)

I have severe problems with this on my Mac even though all extensions seem to be supported. Do other platforms have issues with this as well? (Right now I can't test my code on a Win or Linux PC)

It seems like the problem is located in glBlitFramebuffer.

The result is that the computer slows to a halt, gets garbled graphics and finally freezes completely. Feels like there is some random write to system memory or so :(

Keith Z. Leonard
10-23-2008, 10:13 AM
What hardware? I do exactly those operations with those formats in my engine and have not seen problems on PC.

Brolingstanz
10-23-2008, 10:15 AM
For what it's worth, I've no problems whatever with G80/Vistax86. I also use rgba16f and dc32, blits left and right, without and without stretching, with and without linear filtering, with and without MSAA resolve (no tex rect for me though).

Filip
10-24-2008, 05:08 AM
Alright. I'm back.
Mac OS X 10.5.5 and GF8800 (and GF 8600M)

I ported the code to windows today and it ran flawlessly. So Mac drivers are to blame. Thanks for your time anyway.