radv: exclude PRIMITIVE_{COUNT,INDICES} from the per-vertex output mask
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 13 Apr 2022 09:12:28 +0000 (11:12 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 14 Apr 2022 09:01:35 +0000 (09:01 +0000)
They should be excluded for the primitive and vertex output masks.

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

src/amd/vulkan/radv_shader_info.c

index f374ad2..f3ff932 100644 (file)
@@ -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;