[Piglit] [PATCH v2 05/15] nv_conditional_render: factor out query-helpers
Erik Faye-Lund
erik.faye-lund at collabora.com
Wed Nov 7 21:14:10 UTC 2018
These tests does a lot of common operations, so let's factor those out
into dedicated helpers. This will help us port these tests to gles.
Signed-off-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
---
.../nv_conditional_render/CMakeLists.gl.txt | 14 ++++----
.../begin-while-active.c | 5 +--
tests/spec/nv_conditional_render/bitmap.c | 9 ++---
.../nv_conditional_render/blitframebuffer.c | 5 +--
tests/spec/nv_conditional_render/clear.c | 9 ++---
tests/spec/nv_conditional_render/common.c | 35 +++++++++++++++++++
tests/spec/nv_conditional_render/common.h | 17 +++++++++
tests/spec/nv_conditional_render/copypixels.c | 9 ++---
.../spec/nv_conditional_render/copyteximage.c | 5 +--
.../nv_conditional_render/copytexsubimage.c | 5 +--
tests/spec/nv_conditional_render/dlist.c | 9 ++---
tests/spec/nv_conditional_render/drawpixels.c | 9 ++---
.../nv_conditional_render/generatemipmap.c | 5 +--
.../spec/nv_conditional_render/vertex_array.c | 9 ++---
14 files changed, 84 insertions(+), 61 deletions(-)
diff --git a/tests/spec/nv_conditional_render/CMakeLists.gl.txt b/tests/spec/nv_conditional_render/CMakeLists.gl.txt
index 0f24564d4..6a32a3248 100644
--- a/tests/spec/nv_conditional_render/CMakeLists.gl.txt
+++ b/tests/spec/nv_conditional_render/CMakeLists.gl.txt
@@ -8,15 +8,15 @@ link_libraries (
${OPENGL_gl_LIBRARY}
)
-piglit_add_executable (nv_conditional_render-begin-while-active begin-while-active.c)
+piglit_add_executable (nv_conditional_render-begin-while-active begin-while-active.c common.c)
piglit_add_executable (nv_conditional_render-begin-zero begin-zero.c)
-piglit_add_executable (nv_conditional_render-bitmap bitmap.c)
+piglit_add_executable (nv_conditional_render-bitmap bitmap.c common.c)
piglit_add_executable (nv_conditional_render-blitframebuffer blitframebuffer.c common.c)
-piglit_add_executable (nv_conditional_render-clear clear.c)
-piglit_add_executable (nv_conditional_render-copypixels copypixels.c)
+piglit_add_executable (nv_conditional_render-clear clear.c common.c)
+piglit_add_executable (nv_conditional_render-copypixels copypixels.c common.c)
piglit_add_executable (nv_conditional_render-copyteximage copyteximage.c common.c)
piglit_add_executable (nv_conditional_render-copytexsubimage copytexsubimage.c common.c)
-piglit_add_executable (nv_conditional_render-dlist dlist.c)
-piglit_add_executable (nv_conditional_render-drawpixels drawpixels.c)
+piglit_add_executable (nv_conditional_render-dlist dlist.c common.c)
+piglit_add_executable (nv_conditional_render-drawpixels drawpixels.c common.c)
piglit_add_executable (nv_conditional_render-generatemipmap generatemipmap.c common.c)
-piglit_add_executable (nv_conditional_render-vertex_array vertex_array.c)
+piglit_add_executable (nv_conditional_render-vertex_array vertex_array.c common.c)
diff --git a/tests/spec/nv_conditional_render/begin-while-active.c b/tests/spec/nv_conditional_render/begin-while-active.c
index 821544113..8a21243eb 100644
--- a/tests/spec/nv_conditional_render/begin-while-active.c
+++ b/tests/spec/nv_conditional_render/begin-while-active.c
@@ -22,6 +22,7 @@
*/
#include "piglit-util-gl.h"
+#include "common.h"
/**
* @file begin-while-active.c
@@ -62,11 +63,11 @@ piglit_init(int argc, char **argv)
piglit_require_extension("GL_NV_conditional_render");
glGenQueries(1, &q);
- glBeginQuery(GL_SAMPLES_PASSED, q);
+ begin_query(q);
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
if (!piglit_check_gl_error(GL_INVALID_OPERATION))
piglit_report_result(PIGLIT_FAIL);
- glEndQuery(GL_SAMPLES_PASSED);
+ end_query();
glDeleteQueries(1, &q);
piglit_report_result(PIGLIT_PASS);
diff --git a/tests/spec/nv_conditional_render/bitmap.c b/tests/spec/nv_conditional_render/bitmap.c
index e3954c919..2c0bd8e48 100644
--- a/tests/spec/nv_conditional_render/bitmap.c
+++ b/tests/spec/nv_conditional_render/bitmap.c
@@ -22,6 +22,7 @@
*/
#include "piglit-util-gl.h"
+#include "common.h"
/**
* @file bitmap.c
@@ -67,9 +68,7 @@ piglit_display(void)
/* Generate query pass: draw top half of screen. */
glColor4f(0.0, 1.0, 0.0, 0.0);
- glBeginQuery(GL_SAMPLES_PASSED, q);
- piglit_draw_rect(-1, 0, 2, 1);
- glEndQuery(GL_SAMPLES_PASSED);
+ query_rect_top(q);
/* Conditional render that should draw the whole screen. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
@@ -77,9 +76,7 @@ piglit_display(void)
glBitmap(piglit_width, piglit_height, 0, 0, 0, 0, buf);
glEndConditionalRenderNV();
- /* Generate query fail */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* Conditional render that should not draw full screen. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
diff --git a/tests/spec/nv_conditional_render/blitframebuffer.c b/tests/spec/nv_conditional_render/blitframebuffer.c
index 062af4d48..9a981d45e 100644
--- a/tests/spec/nv_conditional_render/blitframebuffer.c
+++ b/tests/spec/nv_conditional_render/blitframebuffer.c
@@ -87,10 +87,7 @@ piglit_display(void)
fill_tex(0, piglit_width, piglit_height / 2, green_ub);
glGenQueries(1, &q);
-
- /* Generate query fail. */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* BlitFramebuffer() should be affected by conditional rendering. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
diff --git a/tests/spec/nv_conditional_render/clear.c b/tests/spec/nv_conditional_render/clear.c
index 288239d06..ad8169d3f 100644
--- a/tests/spec/nv_conditional_render/clear.c
+++ b/tests/spec/nv_conditional_render/clear.c
@@ -22,6 +22,7 @@
*/
#include "piglit-util-gl.h"
+#include "common.h"
/**
* @file clear.c
@@ -62,9 +63,7 @@ piglit_display(void)
/* Generate query pass: draw top half of screen. */
glColor4f(0.0, 1.0, 0.0, 0.0);
- glBeginQuery(GL_SAMPLES_PASSED, q);
- piglit_draw_rect(-1, 0, 2, 1);
- glEndQuery(GL_SAMPLES_PASSED);
+ query_rect_top(q);
/* Conditional render that should draw bottom half of screen. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
@@ -72,9 +71,7 @@ piglit_display(void)
glClear(GL_COLOR_BUFFER_BIT);
glEndConditionalRenderNV();
- /* Generate query fail */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* Conditional render that should not draw full screen. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
diff --git a/tests/spec/nv_conditional_render/common.c b/tests/spec/nv_conditional_render/common.c
index b183bfb36..b29a6bf6d 100644
--- a/tests/spec/nv_conditional_render/common.c
+++ b/tests/spec/nv_conditional_render/common.c
@@ -42,3 +42,38 @@ fill_tex(int level, int w, int h, const unsigned char *color)
GL_RGBA, GL_UNSIGNED_BYTE, data);
free(data);
}
+
+void
+begin_query(GLuint id)
+{
+ glBeginQuery(GL_SAMPLES_PASSED, id);
+}
+
+void
+end_query()
+{
+ glEndQuery(GL_SAMPLES_PASSED);
+}
+
+void
+fail_query(GLuint id)
+{
+ begin_query(id);
+ end_query();
+}
+
+void
+query_rect_top(GLuint id)
+{
+ begin_query(id);
+ piglit_draw_rect(-1, 0, 2, 1);
+ end_query();
+}
+
+void
+query_rect_bottom(GLuint id)
+{
+ begin_query(id);
+ piglit_draw_rect(-1, -1, 2, 1);
+ end_query();
+}
diff --git a/tests/spec/nv_conditional_render/common.h b/tests/spec/nv_conditional_render/common.h
index 30a9f680f..752d3eb34 100644
--- a/tests/spec/nv_conditional_render/common.h
+++ b/tests/spec/nv_conditional_render/common.h
@@ -25,7 +25,24 @@
#ifndef COMMON_H
#define COMMON_H
+#include "piglit-util-gl.h"
+
void
fill_tex(int level, int w, int h, const unsigned char *color);
+void
+begin_query(GLuint id);
+
+void
+end_query();
+
+void
+fail_query(GLuint id);
+
+void
+query_rect_top(GLuint id);
+
+void
+query_rect_bottom(GLuint id);
+
#endif /* COMMON_H */
diff --git a/tests/spec/nv_conditional_render/copypixels.c b/tests/spec/nv_conditional_render/copypixels.c
index 6bb3ff8a8..92c65a207 100644
--- a/tests/spec/nv_conditional_render/copypixels.c
+++ b/tests/spec/nv_conditional_render/copypixels.c
@@ -22,6 +22,7 @@
*/
#include "piglit-util-gl.h"
+#include "common.h"
/**
* @file copypixels.c
@@ -63,13 +64,9 @@ piglit_display(void)
/* Generate query pass: draw top half of screen. */
glColor4f(0.0, 1.0, 0.0, 0.0);
- glBeginQuery(GL_SAMPLES_PASSED, qpass);
- piglit_draw_rect(-1, 0, 2, 1);
- glEndQuery(GL_SAMPLES_PASSED);
+ query_rect_top(qpass);
- /* Generate query fail */
- glBeginQuery(GL_SAMPLES_PASSED, qfail);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(qfail);
/* Conditional render that should not copy red over the green. */
glBeginConditionalRenderNV(qfail, GL_QUERY_WAIT_NV);
diff --git a/tests/spec/nv_conditional_render/copyteximage.c b/tests/spec/nv_conditional_render/copyteximage.c
index 99e7ba449..8d167e47e 100644
--- a/tests/spec/nv_conditional_render/copyteximage.c
+++ b/tests/spec/nv_conditional_render/copyteximage.c
@@ -71,10 +71,7 @@ piglit_display(void)
fill_tex(0, piglit_width, piglit_height / 2, red);
glGenQueries(1, &q);
-
- /* Generate query fail. */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* This should not be affected by conditional rendering. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
diff --git a/tests/spec/nv_conditional_render/copytexsubimage.c b/tests/spec/nv_conditional_render/copytexsubimage.c
index 71bf66b56..043b3b5ba 100644
--- a/tests/spec/nv_conditional_render/copytexsubimage.c
+++ b/tests/spec/nv_conditional_render/copytexsubimage.c
@@ -71,10 +71,7 @@ piglit_display(void)
fill_tex(0, piglit_width*2, piglit_height / 2, red);
glGenQueries(1, &q);
-
- /* Generate query fail. */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* This should not be affected by conditional rendering. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
diff --git a/tests/spec/nv_conditional_render/dlist.c b/tests/spec/nv_conditional_render/dlist.c
index d322c1c5d..85dc3f73f 100644
--- a/tests/spec/nv_conditional_render/dlist.c
+++ b/tests/spec/nv_conditional_render/dlist.c
@@ -22,6 +22,7 @@
*/
#include "piglit-util-gl.h"
+#include "common.h"
/**
* @file dlist.c
@@ -55,18 +56,14 @@ piglit_display(void)
/* Generate query pass: draw bottom half of screen. */
glColor4f(0.0, 1.0, 0.0, 0.0);
- glBeginQuery(GL_SAMPLES_PASSED, q);
- piglit_draw_rect(-1, -1, 2, 1);
- glEndQuery(GL_SAMPLES_PASSED);
+ query_rect_bottom(q);
/* Conditional render that should draw top half of screen. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
piglit_draw_rect(-1, 0, 2, 1);
glEndConditionalRenderNV();
- /* Generate query fail */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* Conditional render that should not draw full screen. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
diff --git a/tests/spec/nv_conditional_render/drawpixels.c b/tests/spec/nv_conditional_render/drawpixels.c
index ce32b8e1b..f99ad3058 100644
--- a/tests/spec/nv_conditional_render/drawpixels.c
+++ b/tests/spec/nv_conditional_render/drawpixels.c
@@ -22,6 +22,7 @@
*/
#include "piglit-util-gl.h"
+#include "common.h"
/**
* @file drawpixels.c
@@ -66,9 +67,7 @@ piglit_display(void)
/* Generate query pass: draw top half of screen. */
glColor4f(0.0, 1.0, 0.0, 0.0);
- glBeginQuery(GL_SAMPLES_PASSED, q);
- piglit_draw_rect(-1, 0, 2, 1);
- glEndQuery(GL_SAMPLES_PASSED);
+ query_rect_top(q);
/* Conditional render that should draw bottom half of screen. */
for (i = 0; i < piglit_width * piglit_height / 2; i++) {
@@ -82,9 +81,7 @@ piglit_display(void)
glDrawPixels(piglit_width, piglit_height / 2, GL_RGBA, GL_FLOAT, buf);
glEndConditionalRenderNV();
- /* Generate query fail */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* Conditional render that should not draw full screen. */
for (i = 0; i < piglit_width * piglit_height; i++) {
diff --git a/tests/spec/nv_conditional_render/generatemipmap.c b/tests/spec/nv_conditional_render/generatemipmap.c
index 1e148e5f8..f6516a450 100644
--- a/tests/spec/nv_conditional_render/generatemipmap.c
+++ b/tests/spec/nv_conditional_render/generatemipmap.c
@@ -78,10 +78,7 @@ piglit_display(void)
}
glGenQueries(1, &q);
-
- /* Generate query fail. */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* Mipmap generation should not be affected by conditional rendering. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
diff --git a/tests/spec/nv_conditional_render/vertex_array.c b/tests/spec/nv_conditional_render/vertex_array.c
index 4c5ed25f9..51a2aae27 100644
--- a/tests/spec/nv_conditional_render/vertex_array.c
+++ b/tests/spec/nv_conditional_render/vertex_array.c
@@ -22,6 +22,7 @@
*/
#include "piglit-util-gl.h"
+#include "common.h"
/**
* @file vertex_array.c
@@ -63,18 +64,14 @@ piglit_display(void)
/* Generate query pass: draw bottom half of screen. */
glColor4f(0.0, 1.0, 0.0, 0.0);
- glBeginQuery(GL_SAMPLES_PASSED, q);
- piglit_draw_rect(-1, -1, 2, 1);
- glEndQuery(GL_SAMPLES_PASSED);
+ query_rect_bottom(q);
/* Conditional render that should draw top half of screen. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
piglit_draw_rect(-1, 0, 2, 1);
glEndConditionalRenderNV();
- /* Generate query fail */
- glBeginQuery(GL_SAMPLES_PASSED, q);
- glEndQuery(GL_SAMPLES_PASSED);
+ fail_query(q);
/* Conditional render that should not draw full screen. */
glBeginConditionalRenderNV(q, GL_QUERY_WAIT_NV);
--
2.19.1
More information about the Piglit
mailing list