diff options
author | Fabian Bieler <der.fabe@gmx.net> | 2011-04-08 11:20:54 +0200 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2011-04-08 18:29:44 +0200 |
commit | c78b8d1f905966f34a7ec2b1308c3246b9c05484 (patch) | |
tree | f9c67ce628b2206d7416192c159fd091898be303 | |
parent | bead3e5078e756916cd4d851000c9fe726f8ac26 (diff) |
fbo: Test clearing FBOs with incomplete textures
Gallium sometimes reports FBOs as complete but fails to render anything to them.
-rw-r--r-- | tests/fbo/fbo-incomplete-texture-01.c | 18 | ||||
-rw-r--r-- | tests/fbo/fbo-incomplete-texture-02.c | 18 | ||||
-rw-r--r-- | tests/fbo/fbo-incomplete-texture-03.c | 18 | ||||
-rw-r--r-- | tests/fbo/fbo-incomplete-texture-04.c | 18 |
4 files changed, 68 insertions, 4 deletions
diff --git a/tests/fbo/fbo-incomplete-texture-01.c b/tests/fbo/fbo-incomplete-texture-01.c index eaffbb49..cf424b7c 100644 --- a/tests/fbo/fbo-incomplete-texture-01.c +++ b/tests/fbo/fbo-incomplete-texture-01.c @@ -52,6 +52,7 @@ piglit_init(int argc, char **argv) GLuint fb; GLenum status; GLenum err; + const float color[] = {1.0,0.0,0.0,1.0}; piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE); @@ -76,7 +77,7 @@ piglit_init(int argc, char **argv) err = glGetError(); if (err != 0) { - printf("Unexpected GL error state 0x%04x\n", err); + fprintf(stderr, "Unexpected GL error state 0x%04x\n", err); piglit_report_result(PIGLIT_FAILURE); } @@ -87,5 +88,20 @@ piglit_init(int argc, char **argv) piglit_report_result(PIGLIT_FAILURE); } + glClearColor(color[0], color[1], color[2], color[3]); + glClear(GL_COLOR_BUFFER_BIT); + + err = glGetError(); + if (err != 0) { + fprintf(stderr, "Unexpected GL error state 0x%04x\n", err); + piglit_report_result(PIGLIT_FAILURE); + } + + if (!piglit_probe_texel_rect_rgba(GL_TEXTURE_2D, 0, 0, 0, 32, 32, + color)) { + fprintf(stderr, "FBO clear didn't work\n"); + piglit_report_result(PIGLIT_FAILURE); + } + piglit_report_result(PIGLIT_SUCCESS); } diff --git a/tests/fbo/fbo-incomplete-texture-02.c b/tests/fbo/fbo-incomplete-texture-02.c index 76a9447b..6bd9fe88 100644 --- a/tests/fbo/fbo-incomplete-texture-02.c +++ b/tests/fbo/fbo-incomplete-texture-02.c @@ -52,6 +52,7 @@ piglit_init(int argc, char **argv) GLuint fb; GLenum status; GLenum err; + const float color[] = {1.0,0.0,0.0,1.0}; piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE); @@ -83,7 +84,7 @@ piglit_init(int argc, char **argv) err = glGetError(); if (err != 0) { - printf("Unexpected GL error state 0x%04x\n", err); + fprintf(stderr, "Unexpected GL error state 0x%04x\n", err); piglit_report_result(PIGLIT_FAILURE); } @@ -94,5 +95,20 @@ piglit_init(int argc, char **argv) piglit_report_result(PIGLIT_FAILURE); } + glClearColor(color[0], color[1], color[2], color[3]); + glClear(GL_COLOR_BUFFER_BIT); + + err = glGetError(); + if (err != 0) { + fprintf(stderr, "Unexpected GL error state 0x%04x\n", err); + piglit_report_result(PIGLIT_FAILURE); + } + + if (!piglit_probe_texel_rect_rgba(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, + 0, 0, 32, 32, color)) { + fprintf(stderr, "FBO clear didn't work\n"); + piglit_report_result(PIGLIT_FAILURE); + } + piglit_report_result(PIGLIT_SUCCESS); } diff --git a/tests/fbo/fbo-incomplete-texture-03.c b/tests/fbo/fbo-incomplete-texture-03.c index 22e6c2b3..2b5eff98 100644 --- a/tests/fbo/fbo-incomplete-texture-03.c +++ b/tests/fbo/fbo-incomplete-texture-03.c @@ -51,6 +51,7 @@ piglit_init(int argc, char **argv) GLuint fb; GLenum status; GLenum err; + const float color[] = {1.0,0.0,0.0,1.0}; piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE); @@ -84,7 +85,7 @@ piglit_init(int argc, char **argv) err = glGetError(); if (err != 0) { - printf("Unexpected GL error state 0x%04x\n", err); + fprintf(stderr, "Unexpected GL error state 0x%04x\n", err); piglit_report_result(PIGLIT_FAILURE); } @@ -95,5 +96,20 @@ piglit_init(int argc, char **argv) piglit_report_result(PIGLIT_FAILURE); } + glClearColor(color[0], color[1], color[2], color[3]); + glClear(GL_COLOR_BUFFER_BIT); + + err = glGetError(); + if (err != 0) { + fprintf(stderr, "Unexpected GL error state 0x%04x\n", err); + piglit_report_result(PIGLIT_FAILURE); + } + + if (!piglit_probe_texel_rect_rgba(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, + 0, 0, 32, 32, color)) { + fprintf(stderr, "FBO clear didn't work\n"); + piglit_report_result(PIGLIT_FAILURE); + } + piglit_report_result(PIGLIT_SUCCESS); } diff --git a/tests/fbo/fbo-incomplete-texture-04.c b/tests/fbo/fbo-incomplete-texture-04.c index 23623e87..0506f49c 100644 --- a/tests/fbo/fbo-incomplete-texture-04.c +++ b/tests/fbo/fbo-incomplete-texture-04.c @@ -52,6 +52,7 @@ piglit_init(int argc, char **argv) GLuint fb; GLenum status; GLenum err; + const float color[] = {1.0,0.0,0.0,1.0}; piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE); @@ -75,7 +76,7 @@ piglit_init(int argc, char **argv) err = glGetError(); if (err != 0) { - printf("Unexpected GL error state 0x%04x\n", err); + fprintf(stderr, "Unexpected GL error state 0x%04x\n", err); piglit_report_result(PIGLIT_FAIL); } @@ -111,5 +112,20 @@ piglit_init(int argc, char **argv) piglit_report_result(PIGLIT_FAIL); } + glClearColor(color[0], color[1], color[2], color[3]); + glClear(GL_COLOR_BUFFER_BIT); + + err = glGetError(); + if (err != 0) { + fprintf(stderr, "Unexpected GL error state 0x%04x\n", err); + piglit_report_result(PIGLIT_FAILURE); + } + + if (!piglit_probe_texel_rect_rgba(GL_TEXTURE_2D, 2, 0, 0, 8, 8, + color)) { + fprintf(stderr, "FBO clear didn't work\n"); + piglit_report_result(PIGLIT_FAILURE); + } + piglit_report_result(PIGLIT_PASS); } |