From 596f2ef36192e32404c482686ca6e9446a21d366 Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 16 Mar 2023 16:57:34 +0000 Subject: [PATCH] aco: set needs_flat_scr=true for RT Signed-off-by: Rhys Perry Reviewed-by: Friedrich Vock Fixes: 39c828cb9fd ("aco: remove aco::rt_stack variable") Part-of: --- src/amd/compiler/aco_live_var_analysis.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/amd/compiler/aco_live_var_analysis.cpp b/src/amd/compiler/aco_live_var_analysis.cpp index 0ecc957..bedc829 100644 --- a/src/amd/compiler/aco_live_var_analysis.cpp +++ b/src/amd/compiler/aco_live_var_analysis.cpp @@ -309,8 +309,12 @@ calc_waves_per_workgroup(Program* program) uint16_t get_extra_sgprs(Program* program) { - /* We don't use this register on GFX6-8 and it's removed on GFX10+. */ - bool needs_flat_scr = program->config->scratch_bytes_per_wave && program->gfx_level == GFX9; + /* We don't use this register on GFX6-8 and it's removed on GFX10+. RT uses scratch but we don't + * yet know how much. + */ + bool needs_flat_scr = + (program->config->scratch_bytes_per_wave || program->stage == raytracing_cs) && + program->gfx_level == GFX9; if (program->gfx_level >= GFX10) { assert(!program->dev.xnack_enabled); -- 2.7.4