[Mesa-dev] [PATCH] mesa: set override_version per api version override

Tapani Pälli tapani.palli at intel.com
Thu Jun 11 21:30:33 PDT 2015



On 06/11/2015 09:05 PM, Jordan Justen wrote:
> 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);

Yep, this looks cleaner

> Oh ... and with those changes,
>
> Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

thanks 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 at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list