aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Bieler <der.fabe@gmx.net>2011-04-08 11:20:54 +0200
committerMarek Olšák <maraeo@gmail.com>2011-04-08 18:29:44 +0200
commitc78b8d1f905966f34a7ec2b1308c3246b9c05484 (patch)
treef9c67ce628b2206d7416192c159fd091898be303
parentbead3e5078e756916cd4d851000c9fe726f8ac26 (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.c18
-rw-r--r--tests/fbo/fbo-incomplete-texture-02.c18
-rw-r--r--tests/fbo/fbo-incomplete-texture-03.c18
-rw-r--r--tests/fbo/fbo-incomplete-texture-04.c18
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);
}