[Mesa-dev] [PATCH] mesa: set override_version per api version override
Jordan Justen
jordan.l.justen at intel.com
Thu Jun 11 11:05:21 PDT 2015
On 2015-06-10 13:03:20, Jordan Justen wrote:
> 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.palli at 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);
Oh ... and with those changes,
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
>
> > 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 at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list