Mesa (master): mesa/main: factor out one-time-init into a helper

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 14 11:20:34 UTC 2020


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

Author: Erik Faye-Lund <erik.faye-lund at collabora.com>
Date:   Fri Jul 10 13:05:32 2020 +0200

mesa/main: factor out one-time-init into a helper

This will make the next commit a bit cleaner.

Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5879>

---

 src/mesa/main/context.c | 95 +++++++++++++++++++++++++++----------------------
 1 file changed, 52 insertions(+), 43 deletions(-)

diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 2b8becb806d..b8b11b0c450 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -340,14 +340,6 @@ _mesa_destroy_visual( struct gl_config *vis )
 /*@{*/
 
 
-/**
- * One-time initialization mutex lock.
- *
- * \sa Used by one_time_init().
- */
-mtx_t OneTimeLock = _MTX_INITIALIZER_NP;
-
-
 /**
  * Calls all the various one-time-fini functions in Mesa
  */
@@ -359,6 +351,56 @@ one_time_fini(void)
    _mesa_locale_fini();
 }
 
+/**
+ * Calls all the various one-time-init functions in Mesa
+ */
+
+static void
+one_time_init(void)
+{
+   GLuint i;
+
+   STATIC_ASSERT(sizeof(GLbyte) == 1);
+   STATIC_ASSERT(sizeof(GLubyte) == 1);
+   STATIC_ASSERT(sizeof(GLshort) == 2);
+   STATIC_ASSERT(sizeof(GLushort) == 2);
+   STATIC_ASSERT(sizeof(GLint) == 4);
+   STATIC_ASSERT(sizeof(GLuint) == 4);
+
+   _mesa_locale_init();
+
+   _mesa_one_time_init_extension_overrides();
+
+   _mesa_get_cpu_features();
+
+   for (i = 0; i < 256; i++) {
+      _mesa_ubyte_to_float_color_tab[i] = (float) i / 255.0F;
+   }
+
+   atexit(one_time_fini);
+
+#if defined(DEBUG)
+   if (MESA_VERBOSE != 0) {
+      _mesa_debug(NULL, "Mesa " PACKAGE_VERSION " DEBUG build" MESA_GIT_SHA1 "\n");
+   }
+#endif
+
+   /* Take a glsl type reference for the duration of libGL's life to avoid
+    * unecessary creation/destruction of glsl types.
+    */
+   glsl_type_singleton_init_or_ref();
+
+   _mesa_init_remap_table();
+}
+
+/**
+ * One-time initialization mutex lock.
+ *
+ * \sa Used by _mesa_initialize().
+ */
+mtx_t OneTimeLock = _MTX_INITIALIZER_NP;
+
+
 /**
  * Calls all the various one-time-init functions in Mesa.
  *
@@ -376,41 +418,8 @@ _mesa_initialize(void)
    mtx_lock(&OneTimeLock);
 
    /* truly one-time init */
-   if (!initialized) {
-      GLuint i;
-
-      STATIC_ASSERT(sizeof(GLbyte) == 1);
-      STATIC_ASSERT(sizeof(GLubyte) == 1);
-      STATIC_ASSERT(sizeof(GLshort) == 2);
-      STATIC_ASSERT(sizeof(GLushort) == 2);
-      STATIC_ASSERT(sizeof(GLint) == 4);
-      STATIC_ASSERT(sizeof(GLuint) == 4);
-
-      _mesa_locale_init();
-
-      _mesa_one_time_init_extension_overrides();
-
-      _mesa_get_cpu_features();
-
-      for (i = 0; i < 256; i++) {
-         _mesa_ubyte_to_float_color_tab[i] = (float) i / 255.0F;
-      }
-
-      atexit(one_time_fini);
-
-#if defined(DEBUG)
-      if (MESA_VERBOSE != 0) {
-         _mesa_debug(NULL, "Mesa " PACKAGE_VERSION " DEBUG build" MESA_GIT_SHA1 "\n");
-      }
-#endif
-
-      /* Take a glsl type reference for the duration of libGL's life to avoid
-       * unecessary creation/destruction of glsl types.
-       */
-      glsl_type_singleton_init_or_ref();
-
-      _mesa_init_remap_table();
-   }
+   if (!initialized)
+      one_time_init();
 
    initialized = true;
 



More information about the mesa-commit mailing list