[Piglit] [PATCH 1/6] shader_runner: Check feature support before querying GL_MAX_*.

Matt Turner mattst88 at gmail.com
Tue Nov 10 22:46:18 PST 2015


Otherwise, these will generate an error (to be noticed sometime later
when glGetError() is called), often resulting in a test failure.
---
 tests/shaders/shader_runner.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
index 32ac7bd..4597b46 100644
--- a/tests/shaders/shader_runner.c
+++ b/tests/shaders/shader_runner.c
@@ -3111,12 +3111,18 @@ piglit_init(int argc, char **argv)
 	if (piglit_get_gl_version() >= 32)
 		glGetIntegerv(GL_MAX_VERTEX_OUTPUT_COMPONENTS,
 			      &gl_max_vertex_output_components);
-	glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
-		      &gl_max_fragment_uniform_components);
-	glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS,
-		      &gl_max_vertex_uniform_components);
-	glGetIntegerv(GL_MAX_VARYING_COMPONENTS,
-		      &gl_max_varying_components);
+	if (piglit_get_gl_version() >= 20 ||
+	    piglit_is_extension_supported("GL_ARB_fragment_shader"))
+		glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS,
+			      &gl_max_fragment_uniform_components);
+	if (piglit_get_gl_version() >= 20 ||
+	    piglit_is_extension_supported("GL_ARB_vertex_shader"))
+		glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+			      &gl_max_vertex_uniform_components);
+	if (piglit_get_gl_version() >= 30 ||
+	    piglit_is_extension_supported("GL_EXT_geometry_shader4"))
+		glGetIntegerv(GL_MAX_VARYING_COMPONENTS,
+			      &gl_max_varying_components);
 	glGetIntegerv(GL_MAX_CLIP_PLANES, &gl_max_clip_planes);
 #else
 	glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_VECTORS,
-- 
2.4.9



More information about the Piglit mailing list