[Piglit] [PATCH 2/5] read-front: modify the test to reproduce an MSAA front buffer bug in st/dri

Marek Olšák maraeo at gmail.com
Sat Jun 1 05:38:39 PDT 2013


---
 tests/all.tests            |    1 +
 tests/general/read-front.c |   15 ++++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/tests/all.tests b/tests/all.tests
index 417ca08..058253d 100644
--- a/tests/all.tests
+++ b/tests/all.tests
@@ -526,6 +526,7 @@ add_concurrent_test(gl11, 'polygon-mode-offset')
 add_concurrent_test(gl11, 'push-pop-texture-state')
 add_concurrent_test(gl11, 'quad-invariance')
 add_plain_test(gl11, 'read-front')
+add_plain_test(gl11, 'read-front clear-front-first')
 add_concurrent_test(gl11, 'readpix-z')
 add_plain_test(gl11, 'roundmode-getintegerv')
 add_plain_test(gl11, 'roundmode-pixelstore')
diff --git a/tests/general/read-front.c b/tests/general/read-front.c
index e6833dc..bce00c6 100644
--- a/tests/general/read-front.c
+++ b/tests/general/read-front.c
@@ -55,7 +55,6 @@ piglit_display(void)
 
 	piglit_ortho_projection(piglit_width, piglit_height, GL_FALSE);
 
-	glClearColor(0.0, 0.0, 1.0, 0.0);
 	glClear(GL_COLOR_BUFFER_BIT);
 	glColor4fv(green);
 	piglit_draw_rect(0, piglit_height / 2, piglit_width, piglit_height);
@@ -78,4 +77,18 @@ piglit_display(void)
 void
 piglit_init(int argc, char **argv)
 {
+	int i;
+
+	glClearColor(0.0, 0.0, 1.0, 0.0);
+
+	for (i = 1; i < argc; i++) {
+		if (strcmp(argv[i], "clear-front-first") == 0) {
+			/* This should allocate the front buffer in the driver
+			 * if it hasn't been allocated already.
+			 */
+			glDrawBuffer(GL_FRONT);
+			glClear(GL_COLOR_BUFFER_BIT);
+			glDrawBuffer(GL_BACK);
+		}
+	}
 }
-- 
1.7.10.4



More information about the Piglit mailing list