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;