From ARB_gl_spirv spec: "Changes to Chapter 3 of the OpenGL Shading Language 4.50 Specification (Basics)
After describing the compatibility profile rules, add: "Compatibility-profile features are not available when generating SPIR-V."" With this commit, tests that require a compatibility profile are skipped if trying to be run on SPIR-V mode. This includes if we specify force spirv on the command line or if the test includes a SPIRV YES. The latter can happen as the GLSL from those tests can be compatible, so glslang (or any other GLSL->SPIR-V backend) could be able to generate the SPIRV. --- tests/shaders/shader_runner.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c index 92861c5fc..faf78b2d2 100644 --- a/tests/shaders/shader_runner.c +++ b/tests/shaders/shader_runner.c @@ -2033,7 +2033,8 @@ struct requirement_parse_results { static void parse_required_config(struct requirement_parse_results *results, - const char *script_name) + const char *script_name, + bool force_spirv) { unsigned text_size; char *text = piglit_load_text_file(script_name, &text_size); @@ -2077,6 +2078,11 @@ parse_required_config(struct requirement_parse_results *results, results->found_glsl = true; version_copy(&results->glsl_version, &version); } + + if (version.compat && force_spirv) { + printf("ARB_gl_spirv is not compatible with compatibility profile\n"); + piglit_report_result(PIGLIT_SKIP); + } } else if (parse_str(line, "GL", &line)) { enum comparison cmp; struct component_version version; @@ -2089,6 +2095,10 @@ parse_required_config(struct requirement_parse_results *results, results->found_gl = true; version_copy(&results->gl_version, &version); } + if (version.compat && force_spirv) { + printf("ARB_gl_spirv is not compatible with compatibility profile\n"); + piglit_report_result(PIGLIT_SKIP); + } } else if (parse_str(line, "SIZE", &line)) { results->found_size = true; parse_uints(line, results->size, 2, NULL); @@ -2165,7 +2175,7 @@ get_required_config(const char *script_name, bool force_spirv, struct requirement_parse_results parse_results; struct component_version required_gl_version; - parse_required_config(&parse_results, script_name); + parse_required_config(&parse_results, script_name, force_spirv); choose_required_gl_version(&parse_results, &required_gl_version); if (force_spirv || parse_results.found_spirv) { -- 2.19.1 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit