diff options
author | Tapani Pälli <tapani.palli@intel.com> | 2015-06-16 13:46:47 +0300 |
---|---|---|
committer | Martin Peres <martin.peres@linux.intel.com> | 2015-06-16 13:52:01 +0300 |
commit | 7d88ab42b9dda825feddbae774a2a48ddf3cbec2 (patch) | |
tree | 920f3ec1ff0074f437cb483ecaf59017b5aea403 | |
parent | 1a6220b416f02e56575894efbbd1717c9427c763 (diff) |
mesa: set override_version per api version override
Before 9b5e92f get_gl_override was called only once, but now it is
called for multiple APIs (GLES2, GL), version needs to be set always.
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90797
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
Tested-by: Martin Peres <martin.peres@linux.intel.com>
-rw-r--r-- | src/mesa/main/version.c | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c index 60c76040e2a..8bc00ace5c4 100644 --- a/src/mesa/main/version.c +++ b/src/mesa/main/version.c @@ -58,34 +58,44 @@ get_gl_override(gl_api api, int *version, bool *fwd_context, ? "MESA_GL_VERSION_OVERRIDE" : "MESA_GLES_VERSION_OVERRIDE"; const char *version_str; int major, minor, n; - static int override_version = -1; - static bool fc_suffix = false; - static bool compat_suffix = false; + static struct override_info { + int version; + bool fc_suffix; + bool compat_suffix; + } override[] = { + { -1, false, false}, + { -1, false, false}, + { -1, false, false}, + { -1, false, false}, + }; + + STATIC_ASSERT(ARRAY_SIZE(override) == API_OPENGL_LAST + 1); if (api == API_OPENGLES) goto exit; - if (override_version < 0) { - override_version = 0; + if (override[api].version < 0) { + override[api].version = 0; version_str = getenv(env_var); if (version_str) { - fc_suffix = check_for_ending(version_str, "FC"); - compat_suffix = check_for_ending(version_str, "COMPAT"); + override[api].fc_suffix = check_for_ending(version_str, "FC"); + override[api].compat_suffix = check_for_ending(version_str, "COMPAT"); n = sscanf(version_str, "%u.%u", &major, &minor); if (n != 2) { fprintf(stderr, "error: invalid value for %s: %s\n", env_var, version_str); - override_version = 0; + override[api].version = 0; } else { - override_version = major * 10 + minor; + override[api].version = major * 10 + minor; /* There is no such thing as compatibility or forward-compatible for * OpenGL ES 2.0 or 3.x APIs. */ - if ((override_version < 30 && fc_suffix) || - (api == API_OPENGLES2 && (fc_suffix || compat_suffix))) { + if ((override[api].version < 30 && override[api].fc_suffix) || + (api == API_OPENGLES2 && (override[api].fc_suffix || + override[api].compat_suffix))) { fprintf(stderr, "error: invalid value for %s: %s\n", env_var, version_str); } @@ -94,9 +104,9 @@ get_gl_override(gl_api api, int *version, bool *fwd_context, } exit: - *version = override_version; - *fwd_context = fc_suffix; - *compat_context = compat_suffix; + *version = override[api].version; + *fwd_context = override[api].fc_suffix; + *compat_context = override[api].compat_suffix; } /** |