PDA

View Full Version : ARB_FrameBuffer_Object on Radeon 4850



BionicBytes
03-10-2009, 07:25 AM
Can any one help - or has anyone seen the same problem?
I have developed a deferred rendering engine with nVidia Geforce 8 hardware which uses a very flexible MRT format - thanks to the support of EXTX_FRAMEBUFFER_MIXED_FORMATS.
When running on the Radeon with Cat 9.2 OpenGL3.0 drivers (still using the 2.1 context), the ARB_FrameBuffer_Objects is detected and used (proved that with a debugger). However, the ARB_FBO does not seem to support mixed formats in the way the spec suggests or in the way that the EXTX_FBO works.
Basically, the ARB_FBO supports mixed dimensions OK, but not mixed formats. By mixed formats I mean RGBA16F and RGBA8 colour attachments in the FBO. I can get ARB_FBO to accept a different number of channels (RGBA8 and RGB8), but not mixing floating point with 8-bit attachments.
Whist this is better than EXT_FBO, it's not as I would expect from the GL3.0 implementation.
Can any one else confirm this with Radeon or nVidia h/w ?

martinsm
03-10-2009, 07:51 AM
ARB_FBO says it allows for implementation to support mixed format attachments, but it does not say that it requires it. So it is completely legal for implementation to not support mixed format attachments (some or even all of them).
Look what ARB_FBO spec says about FRAMEBUFFER_UNSUPPORTED error:

The combination of internal formats of the attached images does not violate an implementation-dependent set of restrictions.

I suggest you to try to create FBO with RGBA8 and RGBA16F attachments. If that fails then create and use FBO with RGBA16F and RGBA16F attachments.

BionicBytes
03-10-2009, 08:33 AM
O.M.G! Is GL 3.0 really going to be that bad! Thankx for the heads up on the spec... it's all in the words!

I have created FBOs with RGBA8 + RGBAF16, RGBA8 + RGBA32F, RGBA16F + RGBA32F and these don't work (framebuffer unsupported).
RGBA16F + RGBA16F, etc,etc work perfectly well - 'cause the format is the same.

Come on ATI - Give Open GL 3.0 a chance by supporting a decent feature properly!

martinsm
03-10-2009, 11:42 AM
It's not ATI fault. Its OGL specification and/or h/w limitation fault.

ZbuffeR
03-10-2009, 12:36 PM
h/w limitation fault is what I would call ATi's fault in this very case.

BionicBytes
03-10-2009, 02:05 PM
Does any know for a fact (rather than guessing) if DX10 or 9.0c supports mixed format FBOs like GL 3.0 is supposed to do?
If it does on ATI Radeon 4850..then we know the GL 3.0 implmentation sucks on the Radeon and ATI are treating GL as a second class API!

dletozeun
03-10-2009, 02:42 PM
I second that, mixed format framebuffer attachment would be a great thing and should be enforced on at least all OpenGL 3.0 (and further) compliant hardwares.

Sunray
03-10-2009, 03:21 PM
I believe I asked Humus this once at my previous work. He said it was purely a driver restriction and has nothing to do with the hardware.