llvmpipe: fix native vector width init

this otherwise causes infinite loops in subgroup tests
and kills ci

Fixes: 4a056807bc ("gallivm: break out native vector width calc for reuse")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22767>
This commit is contained in:
Mike Blumenkrantz
2023-04-28 16:34:44 -04:00
committed by Marge Bot
parent 78ea6220a7
commit e9864d7f39
3 changed files with 10 additions and 8 deletions

View File

@@ -421,18 +421,22 @@ fail:
}
unsigned
lp_build_get_native_width(void)
lp_build_init_native_width(void)
{
// Default to 256 until we're confident llvmpipe with 512 is as correct and not slower than 256
unsigned vector_width = MIN2(util_get_cpu_caps()->max_vector_bits, 256);
lp_native_vector_width = MIN2(util_get_cpu_caps()->max_vector_bits, 256);
assert(lp_native_vector_width);
vector_width = debug_get_num_option("LP_NATIVE_VECTOR_WIDTH", vector_width);
return vector_width;
lp_native_vector_width = debug_get_num_option("LP_NATIVE_VECTOR_WIDTH", lp_native_vector_width);
assert(lp_native_vector_width);
return lp_native_vector_width;
}
boolean
lp_build_init(void)
{
lp_build_init_native_width();
if (gallivm_initialized)
return TRUE;
@@ -449,8 +453,6 @@ lp_build_init(void)
lp_set_target_options();
lp_native_vector_width = lp_build_get_native_width();
#if DETECT_ARCH_PPC_64
/* Set the NJ bit in VSCR to 0 so denormalized values are handled as
* specified by IEEE standard (PowerISA 2.06 - Section 6.3). This guarantees

View File

@@ -69,7 +69,7 @@ struct gallivm_state
};
unsigned
lp_build_get_native_width(void);
lp_build_init_native_width(void);
boolean
lp_build_init(void);

View File

@@ -1114,7 +1114,7 @@ llvmpipe_create_screen(struct sw_winsys *winsys)
snprintf(screen->renderer_string, sizeof(screen->renderer_string),
"llvmpipe (LLVM " MESA_LLVM_VERSION_STRING ", %u bits)",
lp_build_get_native_width() );
lp_build_init_native_width() );
list_inithead(&screen->ctx_list);
(void) mtx_init(&screen->ctx_mutex, mtx_plain);