[Piglit] [PATCH v2] built-in-constants: Add geometry shader #extension work-around for ES

Ian Romanick idr at freedesktop.org
Wed Aug 24 20:58:43 UTC 2016


From: Ian Romanick <ian.d.romanick at intel.com>

I thought I had this in my previous series, but I cannot find any
trace of it.  Prevents a regression in
tests/spec/glsl-es-3.10/minimum-maximums.txt after
GL_OES_geometry_shader is enabled.  It also fixes
tests/spec/oes_geometry_shader/minimum-maximums.txt

v2: Add extension enables to the passthrough shader too.

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
 tests/shaders/built-in-constants.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/tests/shaders/built-in-constants.c b/tests/shaders/built-in-constants.c
index 41d0a99..5791c7c 100644
--- a/tests/shaders/built-in-constants.c
+++ b/tests/shaders/built-in-constants.c
@@ -462,6 +462,17 @@ piglit_init(int argc, char **argv)
 	} else if (glsl_version < required_glsl_version)
 		piglit_report_result(PIGLIT_SKIP);
 
+	/* Geometry shaders must use the #extension directive in GLSL ES
+	 * before version 3.20.
+	 */
+	if (es_shader && required_glsl_version < 320 &&
+	    piglit_is_extension_supported("GL_OES_geometry_shader")) {
+		assert(num_required_extensions < ARRAY_SIZE(required_extensions));
+		required_extensions[num_required_extensions] =
+			strdup("GL_OES_geometry_shader");
+		num_required_extensions++;
+	}
+
 	/* Tessellation shaders must use the #extension directive. */
 	const char *const tess_ext_name = es_shader
 		? "GL_OES_tessellation_shader"
@@ -522,10 +533,12 @@ piglit_init(int argc, char **argv)
 
 	(void)!asprintf(&passthrough_version_string,
 		 "#version %s\n"
+		 "%s"
 		 "#ifdef GL_ES\n"
 		 "precision mediump float;\n"
 		 "#endif\n",
-		 required_glsl_version_string);
+		 required_glsl_version_string,
+		 extension_enables);
 
 
 	/* Create the shaders that will be used for the real part of the test.
-- 
2.5.5



More information about the Piglit mailing list