radeonsi: add scratch_offset arg for aco cs
authorQiang Yu <yuq825@gmail.com>
Tue, 6 Jun 2023 02:04:52 +0000 (10:04 +0800)
committerMarge Bot <emma+marge@anholt.net>
Tue, 13 Jun 2023 03:41:02 +0000 (03:41 +0000)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23540>

src/gallium/drivers/radeonsi/si_shader.c

index b4524aa..5fd58d3 100644 (file)
@@ -750,6 +750,10 @@ void si_init_shader_args(struct si_shader *shader, struct si_shader_args *args)
       if (shader->selector->info.uses_subgroup_info)
          ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tg_size);
 
+      /* GFX11 set FLAT_SCRATCH directly instead of using this arg. */
+      if (shader->use_aco && sel->screen->info.gfx_level < GFX11)
+         ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset);
+
       /* Hardware VGPRs. */
       /* Thread IDs are packed in VGPR0, 10 bits per component or stored in 3 separate VGPRs */
       if (sel->screen->info.gfx_level >= GFX11 ||