Mesa (main): radv/llvm: fix parameter index for layer exports

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Oct 8 11:36:19 UTC 2021


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

Author: Rhys Perry <pendingchaos02 at gmail.com>
Date:   Thu Oct  7 19:20:55 2021 +0100

radv/llvm: fix parameter index for layer exports

Fixes various dEQP-VK.multiview.* tests.

Fixes: 2aa705ec87c ("radv: determine the VS output parameters in the shader info pass")
Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13250>

---

 src/amd/vulkan/radv_nir_to_llvm.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c
index 642b06e4491..bbe7d6999b2 100644
--- a/src/amd/vulkan/radv_nir_to_llvm.c
+++ b/src/amd/vulkan/radv_nir_to_llvm.c
@@ -1184,8 +1184,6 @@ radv_build_param_exports(struct radv_shader_context *ctx, struct radv_shader_out
                          unsigned noutput, struct radv_vs_output_info *outinfo,
                          bool export_clip_dists)
 {
-   unsigned param_count = 0;
-
    for (unsigned i = 0; i < noutput; i++) {
       unsigned slot_name = outputs[i].slot_name;
       unsigned usage_mask = outputs[i].usage_mask;
@@ -1199,8 +1197,8 @@ radv_build_param_exports(struct radv_shader_context *ctx, struct radv_shader_out
           !export_clip_dists)
          continue;
 
-      radv_export_param(ctx, param_count, outputs[i].values, usage_mask);
-      param_count++;
+      radv_export_param(ctx, outinfo->vs_output_param_offset[slot_name], outputs[i].values,
+                        usage_mask);
    }
 }
 
@@ -1666,7 +1664,6 @@ handle_ngg_outputs_post_2(struct radv_shader_context *ctx)
       handle_vs_outputs_post(ctx, false, outinfo->export_clip_dists, outinfo);
 
       if (outinfo->export_prim_id) {
-         unsigned param_count = outinfo->param_exports;
          LLVMValueRef values[4];
 
          if (ctx->stage == MESA_SHADER_VERTEX) {
@@ -1684,7 +1681,8 @@ handle_ngg_outputs_post_2(struct radv_shader_context *ctx)
          for (unsigned j = 1; j < 4; j++)
             values[j] = ctx->ac.f32_0;
 
-         radv_export_param(ctx, param_count, values, 0x1);
+         radv_export_param(ctx, outinfo->vs_output_param_offset[VARYING_SLOT_PRIMITIVE_ID], values,
+                           0x1);
       }
    }
    ac_build_endif(&ctx->ac, 6002);



More information about the mesa-commit mailing list