summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/version.c
diff options
context:
space:
mode:
authorTapani Pälli <[email protected]>2015-06-16 13:46:47 +0300
committerMartin Peres <[email protected]>2015-06-16 13:52:01 +0300
commit7d88ab42b9dda825feddbae774a2a48ddf3cbec2 (patch)
tree920f3ec1ff0074f437cb483ecaf59017b5aea403 /src/mesa/main/version.c
parent1a6220b416f02e56575894efbbd1717c9427c763 (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 <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90797 Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Martin Peres <[email protected]> Tested-by: Martin Peres <[email protected]>
Diffstat (limited to 'src/mesa/main/version.c')
-rw-r--r--src/mesa/main/version.c38
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;
}
/**