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@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5879>
This commit is contained in:
Erik Faye-Lund
2020-07-10 13:05:32 +02:00
committed by Marge Bot
parent 38e3cbb639
commit 0a4aa612ba

View File

@@ -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;