[Piglit] [PATCH] util: fix broken depth/stencil FBO setup

Brian Paul brianp at vmware.com
Thu Jun 14 13:46:50 PDT 2012


The call to glTexImage2D(internalFormat=GL_DEPTH_STENCIL, format=GL_RGBA,
type=GL_UNSIGNED_BYTE) generated in invalid operation error since the
formats disagreed.  The subsquent glFramebufferTexture2D() calls failed
too.  And Mesa hit a failed assertion (ex: piglit drawpix-z -fbo).

Fixed by passing the correct format/type values to glTexImage2D.

Also, GL_DEPTH_STENCIL and GL_DEPTH_STENCIL_OES have the same value so
remove the compile-time #if/#else.
---
 tests/util/piglit-framework-fbo.c |   15 +++++----------
 1 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/tests/util/piglit-framework-fbo.c b/tests/util/piglit-framework-fbo.c
index 37411e3..0444c37 100644
--- a/tests/util/piglit-framework-fbo.c
+++ b/tests/util/piglit-framework-fbo.c
@@ -256,19 +256,14 @@ piglit_framework_fbo_gl_init()
 			       0);
 
 	if (piglit_window_mode & (GLUT_DEPTH | GLUT_STENCIL)) {
-		GLenum depth_stencil;
-
-#ifdef USE_OPENGL
-		depth_stencil = GL_DEPTH_STENCIL;
-#else
-		depth_stencil = GL_DEPTH_STENCIL_OES;
-#endif
-
+		/* Create a combined depth+stencil texture and attach it
+		 * to the depth and stencil attachment points.
+		 */
 		glGenTextures(1, &depth);
 		glBindTexture(GL_TEXTURE_2D, depth);
-		glTexImage2D(GL_TEXTURE_2D, 0, depth_stencil,
+		glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_STENCIL,
 			     piglit_width, piglit_height, 0,
-			     GL_RGBA, GL_UNSIGNED_BYTE, NULL);
+			     GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, NULL);
 		glFramebufferTexture2D(GL_FRAMEBUFFER,
 				       GL_DEPTH_ATTACHMENT,
 				       GL_TEXTURE_2D,
-- 
1.7.3.4



More information about the Piglit mailing list