From 7180b16afcaa7be13c0f9cfcfdcc56ea0f5b05b7 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Thu, 27 Apr 2023 19:30:21 +0800 Subject: [PATCH] radeonsi: adjust ps args for aco MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit aco need explicite args including PS arg compaction and scratch_offset. Reviewed-by: Marek Olšák Signed-off-by: Qiang Yu Part-of: --- src/gallium/drivers/radeonsi/si_shader.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 81339de24a8..82b5ec95a3a 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -698,6 +698,14 @@ void si_init_shader_args(struct si_shader *shader, struct si_shader_args *args) si_add_arg_checked(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->pos_fixed_pt, SI_PARAM_POS_FIXED_PT); + if (shader->use_aco) { + ac_compact_ps_vgpr_args(&args->ac, shader->config.spi_ps_input_addr); + + /* GFX11 set FLAT_SCRATCH directly instead of using this arg. */ + if (sel->screen->info.gfx_level < GFX11) + ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); + } + /* Monolithic PS emit prolog and epilog in NIR directly. */ if (!shader->is_monolithic) { /* Color inputs from the prolog. */