diff --git a/.pick_status.json b/.pick_status.json index 61f80b0361a..e1e2a63b965 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1039,7 +1039,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 }, diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c index dc391652a5c..7f616620772 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c @@ -420,6 +420,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) @@ -440,11 +449,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 diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h index ca267a36f92..d462c8c3fe5 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h @@ -68,6 +68,8 @@ struct gallivm_state LLVMValueRef get_time_hook; }; +unsigned +lp_build_get_native_width(void); boolean lp_build_init(void); diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 98ec3ccccf9..ac3caaa9558 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -1112,7 +1112,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);