diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index cadd4f42fc5..7ea0c69075c 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -212,6 +212,20 @@ static const struct debug_named_value mesa_spirv_debug_control[] = { DEBUG_GET_ONCE_FLAGS_OPTION(mesa_spirv_debug, "MESA_SPIRV_DEBUG", mesa_spirv_debug_control, 0) +/* DO NOT CALL THIS FUNCTION DIRECTLY. Use mesa_spirv_debug_init() instead */ +static void +initialize_mesa_spirv_debug(void) +{ + mesa_spirv_debug = debug_get_option_mesa_spirv_debug(); +} + +static void +mesa_spirv_debug_init(void) +{ + static once_flag initialized_debug_flag = ONCE_FLAG_INIT; + call_once(&initialized_debug_flag, initialize_mesa_spirv_debug); +} + static enum nir_spirv_debug_level vtn_default_log_level(void) { @@ -6823,14 +6837,6 @@ can_remove(nir_variable *var, void *data) return !_mesa_set_search(vars_used_indirectly, var); } -#ifndef NDEBUG -static void -initialize_mesa_spirv_debug(void) -{ - mesa_spirv_debug = debug_get_option_mesa_spirv_debug(); -} -#endif - nir_shader * spirv_to_nir(const uint32_t *words, size_t word_count, struct nir_spirv_specialization *spec, unsigned num_spec, @@ -6840,8 +6846,7 @@ spirv_to_nir(const uint32_t *words, size_t word_count, { #ifndef NDEBUG - static once_flag initialized_debug_flag = ONCE_FLAG_INIT; - call_once(&initialized_debug_flag, initialize_mesa_spirv_debug); + mesa_spirv_debug_init(); #endif const uint32_t *word_end = words + word_count; @@ -7219,8 +7224,7 @@ spirv_library_to_nir_builder(FILE *fp, const uint32_t *words, size_t word_count, const struct spirv_to_nir_options *options) { #ifndef NDEBUG - static once_flag initialized_debug_flag = ONCE_FLAG_INIT; - call_once(&initialized_debug_flag, initialize_mesa_spirv_debug); + mesa_spirv_debug_init(); #endif const uint32_t *word_end = words + word_count;