gallivm: break out native vector width calc for reuse

breaks dependency on lp_build_init()

cc: mesa-stable

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22600>
(cherry picked from commit 4a056807bc)
This commit is contained in:
Mike Blumenkrantz 2023-04-21 10:56:44 -04:00 committed by Dylan Baker
parent 2e6fb4a904
commit fac89e1ce2
4 changed files with 14 additions and 7 deletions

View file

@ -10764,7 +10764,7 @@
"description": "gallivm: break out native vector width calc for reuse",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -419,6 +419,15 @@ fail:
return FALSE;
}
unsigned
lp_build_get_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);
vector_width = debug_get_num_option("LP_NATIVE_VECTOR_WIDTH", vector_width);
return vector_width;
}
boolean
lp_build_init(void)
@ -441,11 +450,7 @@ lp_build_init(void)
lp_set_target_options();
// Default to 256 until we're confident llvmpipe with 512 is as correct and not slower than 256
lp_native_vector_width = MIN2(util_get_cpu_caps()->max_vector_bits, 256);
lp_native_vector_width = debug_get_num_option("LP_NATIVE_VECTOR_WIDTH",
lp_native_vector_width);
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

View file

@ -68,6 +68,8 @@ struct gallivm_state
LLVMValueRef get_time_hook;
};
unsigned
lp_build_get_native_width(void);
boolean
lp_build_init(void);

View file

@ -1094,7 +1094,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_native_vector_width );
lp_build_get_native_width() );
list_inithead(&screen->ctx_list);
(void) mtx_init(&screen->ctx_mutex, mtx_plain);