Module: Mesa Branch: main Commit: 18e19a53e92382db195a6600f6efaa64e750e069 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=18e19a53e92382db195a6600f6efaa64e750e069
Author: Qiang Yu <[email protected]> Date: Mon Sep 4 15:14:19 2023 +0800 radeonsi: selectively build llvm compile Reviewed-by: Marek Olšák <[email protected]> Signed-off-by: Qiang Yu <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25632> --- src/gallium/drivers/radeonsi/si_shader.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 3c5e8b7954c..41ce2356998 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -2509,9 +2509,12 @@ si_nir_generate_gs_copy_shader(struct si_screen *sscreen, nir_print_shader(nir, stderr); } - bool ok = sscreen->use_aco ? - si_aco_compile_shader(shader, &args, nir, debug) : - si_llvm_compile_shader(sscreen, compiler, shader, &args, debug, nir); + bool ok = +#ifdef LLVM_AVAILABLE + !sscreen->use_aco ? si_llvm_compile_shader(sscreen, compiler, shader, &args, debug, nir) : +#endif + si_aco_compile_shader(shader, &args, nir, debug); + if (ok) { assert(!shader->config.scratch_bytes_per_wave); @@ -2764,9 +2767,12 @@ bool si_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler *compi FLOAT_CONTROLS_DENORM_FLUSH_TO_ZERO_FP64)) float_mode &= ~V_00B028_FP_16_64_DENORMS; - ret = sscreen->use_aco ? - si_aco_compile_shader(shader, &args, nir, debug) : - si_llvm_compile_shader(sscreen, compiler, shader, &args, debug, nir); + ret = +#ifdef LLVM_AVAILABLE + !sscreen->use_aco ? si_llvm_compile_shader(sscreen, compiler, shader, &args, debug, nir) : +#endif + si_aco_compile_shader(shader, &args, nir, debug); + if (!ret) goto out; @@ -2927,9 +2933,11 @@ si_get_shader_part(struct si_screen *sscreen, struct si_shader_part **list, result = CALLOC_STRUCT(si_shader_part); result->key = *key; - bool ok = sscreen->use_aco ? - si_aco_build_shader_part(sscreen, stage, prolog, debug, name, result) : - si_llvm_build_shader_part(sscreen, stage, prolog, compiler, debug, name, result); + bool ok = +#ifdef LLVM_AVAILABLE + !sscreen->use_aco ? si_llvm_build_shader_part(sscreen, stage, prolog, compiler, debug, name, result) : +#endif + si_aco_build_shader_part(sscreen, stage, prolog, debug, name, result); if (ok) { result->next = *list;
