Signed-off-by: Jordan Justen <[email protected]>
---
 tests/shaders/shader_runner.c | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c
index a288afa..bd7fe6f 100644
--- a/tests/shaders/shader_runner.c
+++ b/tests/shaders/shader_runner.c
@@ -74,6 +74,7 @@ struct component_version {
                VERSION_GLSL,
        } _tag;
 
+       bool core;
        bool es;
        unsigned num;
        char _string[100];
@@ -174,11 +175,12 @@ bool
 compare(float ref, float value, enum comparison cmp);
 
 static void
-version_init(struct component_version *v, enum version_tag tag, bool es, 
unsigned num)
+version_init(struct component_version *v, enum version_tag tag, bool core, 
bool es, unsigned num)
 {
        assert(tag == VERSION_GL || tag == VERSION_GLSL);
 
        v->_tag = tag;
+       v->core = core;
        v->es = es;
        v->num = num;
        v->_string[0] = 0;
@@ -510,7 +512,12 @@ parse_version_comparison(const char *line, enum comparison 
*cmp,
        unsigned minor;
        unsigned full_num;
        bool es = false;
+       bool core = false;
 
+       if (string_match(" CORE", line)) {
+               core = true;
+               line += 5;
+       }
        if (string_match(" ES", line)) {
                es = true;
                line += 3;
@@ -539,7 +546,7 @@ parse_version_comparison(const char *line, enum comparison 
*cmp,
                full_num = (major * 10) + minor;
        }
 
-       version_init(v, tag, es, full_num);
+       version_init(v, tag, core, es, full_num);
 }
 
 /**
@@ -1077,7 +1084,7 @@ choose_required_gl_version(struct 
requirement_parse_results *parse_results,
                version_copy(gl_version, &parse_results->gl_version);
        } else {
                assert(!parse_results->found_glsl || 
!parse_results->glsl_version.es);
-               version_init(gl_version, VERSION_GL, false, 10);
+               version_init(gl_version, VERSION_GL, false, false, 10);
        }
 
        if (gl_version->es)
@@ -1124,7 +1131,8 @@ get_required_config(const char *script_name,
                config->supports_gl_es_version = required_gl_version.num;
        } else if (required_gl_version.num >= 31) {
                config->supports_gl_core_version = required_gl_version.num;
-               config->supports_gl_compat_version = required_gl_version.num;
+               if (!required_gl_version.core)
+                       config->supports_gl_compat_version = 
required_gl_version.num;
        } else {
                config->supports_gl_compat_version = 10;
        }
@@ -2144,16 +2152,17 @@ piglit_init(int argc, char **argv)
 {
        int major;
        int minor;
+       bool core = piglit_is_core_profile;
        bool es;
 
        piglit_require_GLSL();
 
        version_init(&gl_version, VERSION_GL,
+                    core,
                     piglit_is_gles(),
                     piglit_get_gl_version());
-
        piglit_get_glsl_version(&es, &major, &minor);
-       version_init(&glsl_version, VERSION_GLSL, es,
+       version_init(&glsl_version, VERSION_GLSL, core, es,
                     (major * 100) + minor);
 
 #ifdef PIGLIT_USE_OPENGL
-- 
2.0.0.rc2

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to