Module: Mesa
Branch: main
Commit: 3542d5ce6b39309aa02844a4eaf9a1eafaec9280
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3542d5ce6b39309aa02844a4eaf9a1eafaec9280

Author: Qiang Yu <[email protected]>
Date:   Sat Jul 23 18:30:45 2022 +0800

radeonsi: fix NGG VS primitive ID load

When NGG VS need to export primitive ID, it will load it in GS
threads, so need to use gs_prim_id arg. Current nir to llvm
translator check vs_prim_id present to use vs_prim_id first.

Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Signed-off-by: Qiang Yu <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17109>

---

 src/gallium/drivers/radeonsi/si_shader.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index dd21c9182de..73dd8d4ee0d 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -334,7 +334,8 @@ static void declare_vs_input_vgprs(struct si_shader_context 
*ctx, unsigned *num_
    } else if (ctx->screen->info.gfx_level >= GFX10) {
       ac_add_arg(&ctx->args, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user VGPR */
       ac_add_arg(&ctx->args, AC_ARG_VGPR, 1, AC_ARG_INT,
-                 &ctx->args.vs_prim_id); /* user vgpr or PrimID (legacy) */
+                 /* user vgpr or PrimID (legacy) */
+                 shader->key.ge.as_ngg ? NULL : &ctx->args.vs_prim_id);
       ac_add_arg(&ctx->args, AC_ARG_VGPR, 1, AC_ARG_INT, 
&ctx->args.instance_id);
    } else {
       ac_add_arg(&ctx->args, AC_ARG_VGPR, 1, AC_ARG_INT, 
&ctx->args.instance_id);

Reply via email to