radeonsi: fix uses_instanceid for merged mono shader stage
authorQiang Yu <yuq825@gmail.com>
Thu, 18 May 2023 12:15:17 +0000 (20:15 +0800)
committerMarge Bot <emma+marge@anholt.net>
Fri, 19 May 2023 02:07:08 +0000 (02:07 +0000)
prev_shader.info.uses_instanceid is set by si_nir_lower_vs_inputs()
when attribute divisor is used.

Fixes: 894d92995cd ("radeonsi: monolithic VS emit prolog in nir directly")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9042
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/23101>

src/gallium/drivers/radeonsi/si_shader_llvm.c

index ad5663e..eac314e 100644 (file)
@@ -1125,7 +1125,10 @@ bool si_llvm_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler *
          si_llvm_dispose(&ctx);
          return false;
       }
-      shader->info.uses_instanceid |= prev_shader.selector->info.uses_instanceid;
+
+      shader->info.uses_instanceid |=
+         prev_shader.selector->info.uses_instanceid || prev_shader.info.uses_instanceid;
+
       parts[0] = ctx.main_fn;
 
       /* Preserve main arguments. */