I’m trying to create a FBO with one color buffer stored in texture, one depth buffer in texture and one stencil render buffer:
uint fbo_id, tex_id, depth_tex_id, stencil_rb;
glGenFramebuffersEXT( 1, &fbo_id );
glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, fbo_id );
// color
glGenTextures( 1, &tex_id );
glBindTexture( GL_TEXTURE_2D, tex_id );
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB8, 100, 100, 0, GL_RGB, GL_FLOAT, NULL );
glFramebufferTexture2DEXT( GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex_id, 0 );
// depth
glGenTextures( 1, &depth_tex_id );
glBindTexture( GL_TEXTURE_2D, depth_tex_id );
glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 100, 100, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL );
glFramebufferTexture2DEXT( GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depth_tex_id, 0 );
// stencil
glGenRenderbuffersEXT( 1, &stencil_rb );
glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, stencil_rb );
glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_STENCIL_INDEX, 100, 100 );
glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, stencil_rb );
if( glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE_EXT )
FATAL( "!!!!!!!" );
The above code fails all the time. What is wrong with it? Im using an AMD 4870 (unfortunately) under ubuntu linux.
Thanks in advance!