Mesa (master): mesa: set override_version per api version override

Martin Peres mperes at kemper.freedesktop.org
Tue Jun 16 10:52:28 UTC 2015


Module: Mesa
Branch: master
Commit: 7d88ab42b9dda825feddbae774a2a48ddf3cbec2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d88ab42b9dda825feddbae774a2a48ddf3cbec2

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Tue Jun 16 13:46:47 2015 +0300

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 at intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90797
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Martin Peres <martin.peres at linux.intel.com>
Tested-by: Martin Peres <martin.peres at linux.intel.com>

---

 src/mesa/main/version.c |   38 ++++++++++++++++++++++++--------------
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index 60c7604..8bc00ac 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;
 }
 
 /**




More information about the mesa-commit mailing list