aco: set needs_flat_scr=true for RT
authorRhys Perry <pendingchaos02@gmail.com>
Thu, 16 Mar 2023 16:57:34 +0000 (16:57 +0000)
committerMarge Bot <emma+marge@anholt.net>
Fri, 17 Mar 2023 16:55:57 +0000 (16:55 +0000)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Fixes: 39c828cb9fd ("aco: remove aco::rt_stack variable")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21961>

src/amd/compiler/aco_live_var_analysis.cpp

index 0ecc957..bedc829 100644 (file)
@@ -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);