Use a more complex texture to test more parameters of the framebuffer
attachment.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77662
Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com>
---
 ...mebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c | 44 ++++++++++++++++++----
 1 file changed, 37 insertions(+), 7 deletions(-)

diff --git 
a/tests/spec/arb_framebuffer_object/same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c
 
b/tests/spec/arb_framebuffer_object/same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c
index 9d8e5f5..78f8cb6 100644
--- 
a/tests/spec/arb_framebuffer_object/same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c
+++ 
b/tests/spec/arb_framebuffer_object/same-attachment-glFramebufferTexture2D-GL_DEPTH_STENCIL_ATTACHMENT.c
@@ -43,6 +43,20 @@ PIGLIT_GL_TEST_CONFIG_BEGIN
 PIGLIT_GL_TEST_CONFIG_END
 
 const char*
+get_cube_map_face_string(GLenum face)
+{
+       switch (face) {
+       case GL_TEXTURE_CUBE_MAP_POSITIVE_Y: return 
"GL_TEXTURE_CUBE_MAP_POSITIVE_Y";
+       case GL_TEXTURE_CUBE_MAP_POSITIVE_X: return 
"GL_TEXTURE_CUBE_MAP_POSITIVE_X";
+       case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: return 
"GL_TEXTURE_CUBE_MAP_POSITIVE_Z";
+       case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: return 
"GL_TEXTURE_CUBE_MAP_NEGATIVE_Y";
+       case GL_TEXTURE_CUBE_MAP_NEGATIVE_X: return 
"GL_TEXTURE_CUBE_MAP_NEGATIVE_X";
+       case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: return 
"GL_TEXTURE_CUBE_MAP_NEGATIVE_Z";
+       default: return NULL;
+       }
+}
+
+const char*
 get_attachment_string(GLint attach)
 {
        switch (attach) {
@@ -54,10 +68,11 @@ get_attachment_string(GLint attach)
 }
 
 bool
-check_attachment(GLenum attach, GLint expect_name)
+check_attachment(GLenum attach, GLint expect_name, GLenum expect_cube_map_face)
 {
        GLint actual_type;
        GLint actual_name;
+       GLint actual_cube_map_face;
 
        glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER,
                                              attach,
@@ -95,6 +110,20 @@ check_attachment(GLenum attach, GLint expect_name)
                return false;
        }
 
+       glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER,
+                                             attach,
+                                             
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
+                                             &actual_cube_map_face);
+
+       if (actual_cube_map_face != expect_cube_map_face) {
+               fprintf(stderr,
+                       "error: expected %s for %s attachment cube map face, 
but found %s\n",
+                       get_cube_map_face_string(expect_cube_map_face),
+                       get_attachment_string(attach),
+                       get_cube_map_face_string(actual_cube_map_face));
+               return false;
+       }
+
        return true;
 }
 
@@ -108,6 +137,7 @@ void piglit_init(int argc, char **argv)
 {
        bool pass = true;
 
+       GLenum cube_map_face = GL_TEXTURE_CUBE_MAP_POSITIVE_Y;
        GLuint fb;
        GLuint tex;
 
@@ -115,10 +145,10 @@ void piglit_init(int argc, char **argv)
 
        glGenTextures(1, &tex);
        glGenFramebuffers(1, &fb);
-       glBindTexture(GL_TEXTURE_2D, tex);
+       glBindTexture(GL_TEXTURE_CUBE_MAP, tex);
        glBindFramebuffer(GL_FRAMEBUFFER, fb);
 
-       glTexImage2D(GL_TEXTURE_2D,
+       glTexImage2D(cube_map_face,
                     0, /*level*/
                     GL_DEPTH_STENCIL,
                     200, 200, /*width, height*/
@@ -128,15 +158,15 @@ void piglit_init(int argc, char **argv)
                     NULL);
        glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER,
                               GL_DEPTH_STENCIL_ATTACHMENT,
-                              GL_TEXTURE_2D,
+                              cube_map_face,
                               tex,
                               0); /*level*/
 
        pass = piglit_check_gl_error(0) && pass;
 
-       pass = check_attachment(GL_DEPTH_ATTACHMENT, tex) && pass;
-       pass = check_attachment(GL_STENCIL_ATTACHMENT, tex) && pass;
-       pass = check_attachment(GL_DEPTH_STENCIL_ATTACHMENT, tex) && pass;
+       pass = check_attachment(GL_DEPTH_ATTACHMENT, tex, cube_map_face) && 
pass;
+       pass = check_attachment(GL_STENCIL_ATTACHMENT, tex, cube_map_face) && 
pass;
+       pass = check_attachment(GL_DEPTH_STENCIL_ATTACHMENT, tex, 
cube_map_face) && pass;
 
        pass = piglit_check_gl_error(0) && pass;
 
-- 
2.10.2

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to