Mesa (main): radv: exclude PRIMITIVE_{COUNT,INDICES} from the per-vertex output mask

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Apr 14 09:48:34 UTC 2022


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Wed Apr 13 11:12:28 2022 +0200

radv: exclude PRIMITIVE_{COUNT,INDICES} from the per-vertex output mask

They should be excluded for the primitive and vertex output masks.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15918>

---

 src/amd/vulkan/radv_shader_info.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c
index f374ad29773..f3ff932cbb5 100644
--- a/src/amd/vulkan/radv_shader_info.c
+++ b/src/amd/vulkan/radv_shader_info.c
@@ -688,11 +688,12 @@ radv_nir_shader_info_pass(struct radv_device *device, const struct nir_shader *n
       memset(outinfo->vs_output_param_offset, AC_EXP_PARAM_UNDEFINED,
              sizeof(outinfo->vs_output_param_offset));
 
+      uint64_t special_mask = BITFIELD64_BIT(VARYING_SLOT_PRIMITIVE_COUNT) |
+                              BITFIELD64_BIT(VARYING_SLOT_PRIMITIVE_INDICES);
       uint64_t per_prim_mask =
-         nir->info.outputs_written & nir->info.per_primitive_outputs &
-         ~BITFIELD64_BIT(VARYING_SLOT_PRIMITIVE_INDICES) & ~BITFIELD64_BIT(VARYING_SLOT_PRIMITIVE_COUNT);
+         nir->info.outputs_written & nir->info.per_primitive_outputs & ~special_mask;
       uint64_t per_vtx_mask =
-         nir->info.outputs_written & ~per_prim_mask;
+         nir->info.outputs_written & ~nir->info.per_primitive_outputs & ~special_mask;
 
       unsigned total_param_exports = 0;
 



More information about the mesa-commit mailing list