From d1d6e6695ed7ba924bd01080c0f90f8ae5a9b2f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 1 Jan 2025 13:49:33 -0500 Subject: [PATCH] radeonsi: remove ac_shader_config from si_shader_part we only need num_sgprs and num_vgprs from it Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_shader.c | 8 ++++---- src/gallium/drivers/radeonsi/si_shader.h | 3 ++- src/gallium/drivers/radeonsi/si_shader_aco.c | 4 ++-- src/gallium/drivers/radeonsi/si_shader_llvm.c | 5 ++++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index b1402b20d12..034c3875577 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -3601,9 +3601,9 @@ bool si_create_shader_variant(struct si_screen *sscreen, struct ac_llvm_compiler /* Update SGPR and VGPR counts. */ if (shader->prolog) { shader->config.num_sgprs = - MAX2(shader->config.num_sgprs, shader->prolog->config.num_sgprs); + MAX2(shader->config.num_sgprs, shader->prolog->num_sgprs); shader->config.num_vgprs = - MAX2(shader->config.num_vgprs, shader->prolog->config.num_vgprs); + MAX2(shader->config.num_vgprs, shader->prolog->num_vgprs); } if (shader->previous_stage) { shader->config.num_sgprs = @@ -3625,9 +3625,9 @@ bool si_create_shader_variant(struct si_screen *sscreen, struct ac_llvm_compiler } if (shader->epilog) { shader->config.num_sgprs = - MAX2(shader->config.num_sgprs, shader->epilog->config.num_sgprs); + MAX2(shader->config.num_sgprs, shader->epilog->num_sgprs); shader->config.num_vgprs = - MAX2(shader->config.num_vgprs, shader->epilog->config.num_vgprs); + MAX2(shader->config.num_vgprs, shader->epilog->num_vgprs); } si_calculate_max_simd_waves(shader); } diff --git a/src/gallium/drivers/radeonsi/si_shader.h b/src/gallium/drivers/radeonsi/si_shader.h index dd6f023c3a2..81a8f2dda03 100644 --- a/src/gallium/drivers/radeonsi/si_shader.h +++ b/src/gallium/drivers/radeonsi/si_shader.h @@ -1045,7 +1045,8 @@ struct si_shader_part { struct si_shader_part *next; union si_shader_part_key key; struct si_shader_binary binary; - struct ac_shader_config config; + unsigned num_vgprs; + unsigned num_sgprs; }; /* si_shader.c */ diff --git a/src/gallium/drivers/radeonsi/si_shader_aco.c b/src/gallium/drivers/radeonsi/si_shader_aco.c index c9e9c297453..70ab0794b01 100644 --- a/src/gallium/drivers/radeonsi/si_shader_aco.c +++ b/src/gallium/drivers/radeonsi/si_shader_aco.c @@ -243,8 +243,8 @@ si_aco_build_shader_part_binary(void** priv_ptr, uint32_t num_sgprs, uint32_t nu result->binary.disasm_size = disasm_size; } - result->config.num_sgprs = num_sgprs; - result->config.num_vgprs = num_vgprs; + result->num_sgprs = num_sgprs; + result->num_vgprs = num_vgprs; } static bool diff --git a/src/gallium/drivers/radeonsi/si_shader_llvm.c b/src/gallium/drivers/radeonsi/si_shader_llvm.c index f2bb5a848ae..b5c46ade90f 100644 --- a/src/gallium/drivers/radeonsi/si_shader_llvm.c +++ b/src/gallium/drivers/radeonsi/si_shader_llvm.c @@ -926,8 +926,11 @@ bool si_llvm_build_shader_part(struct si_screen *sscreen, gl_shader_stage stage, /* Compile. */ si_llvm_optimize_module(&ctx); - bool ret = si_compile_llvm(sscreen, &result->binary, &result->config, compiler, + struct ac_shader_config config = {0}; + bool ret = si_compile_llvm(sscreen, &result->binary, &config, compiler, &ctx.ac, debug, ctx.stage, name); + result->num_vgprs = config.num_vgprs; + result->num_sgprs = config.num_sgprs; si_llvm_dispose(&ctx); return ret;