Whoops. I re-wrote this last night: http://cgit.freedesktop.org/~jljusten/mesa/commit/?h=cs-33&id=3ebe7b79
On 2015-06-04 21:41:15, Tapani Pälli wrote: > 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.pa...@intel.com> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90797 > --- > src/mesa/main/version.c | 36 ++++++++++++++++++++++-------------- > 1 file changed, 22 insertions(+), 14 deletions(-) > > diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c > index 409e5ae..5e9943c 100644 > --- a/src/mesa/main/version.c > +++ b/src/mesa/main/version.c > @@ -58,34 +58,42 @@ 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[API_OPENGL_LAST + 1] = { > + { -1, false, false}, > + { -1, false, false}, > + { -1, false, false}, > + { -1, false, false}, > + }; I did this a bit differently. Rather than one for each API, I had one per override env var. If you think once per API is preferable, how about these changes to your patch: override[API_OPENGL_LAST + 1] => override[] STATIC_ASSERT(ARRAY_SIZE(override) == API_OPENGL_LAST + 1); -Jordan > if (api == API_OPENGLES) > return; > > - 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); > } > @@ -93,9 +101,9 @@ get_gl_override(gl_api api, int *version, bool > *fwd_context, > } > } > > - *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; > } > > /** > -- > 2.1.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev