diff --git a/src/amd/compiler/aco_live_var_analysis.cpp b/src/amd/compiler/aco_live_var_analysis.cpp index 0ecc9575f20..bedc829a901 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);