PDA

View Full Version : fbo/depthbuffer madness



codemonkey76
12-04-2006, 10:49 AM
hoping someone here has some insight:

Simple FBO setup (to render a picture which is grabbed and placed on a GUI button):

GLuint fb, cb, db;
glGenFramebuffersEXT( 1, &fb );
glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, fb );

glGenRenderbuffersEXT( 1, &cb );
glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, cb );
glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_RGB, BW, BH );
glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, cb );

glGenRenderbuffersEXT( 1, &db );
glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, db );
glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT16, BW, BH );
glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, db );

I run this on 2 machines, one with a 6800 in single display mode 1280x1024, the other with a 6800 GT in dual-display mode 1280x1024, both with driver 91.47.

The 6800 works with GL_DEPTH_COMPONENT16, but not GL_DEPTH_COMPONENT32 or GL_DEPTH_COMPONENT.

The 6800 GT doesn't work for any GL_DEPTH_COMPONENT.

When it fails, glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) returns GL_FRAMEBUFFER_UNSUPPORTED_EXT.

Is FBO not fully supported on the GT? Any other ideas!?

Thanks!

codemonkey76
12-04-2006, 11:16 AM
...I meant GL_DEPTH_COMPONENT24 doesn't work. GL_DEPTH_COMPONENT32 doesn't either, obviously...

zeoverlord
12-04-2006, 03:48 PM
It should work, i can use all GL_DEPTH_COMPONENT on my 6800ultra, which is the same as all other 6800 models save for clock and pixel pipelines.
FBO is sort of fully supported by the 6800 models, so i think your problem lies elsewhere.

You don't have a texture bound, i think that returns an error.