Mesa (master): radv: gather the output usage mask for clip/cull distances correctly

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Aug 31 15:51:29 UTC 2018


Module: Mesa
Branch: master
Commit: 730c704f862b7a2455400c7255d7345ee728e659
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=730c704f862b7a2455400c7255d7345ee728e659

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Aug 30 09:43:29 2018 +0200

radv: gather the output usage mask for clip/cull distances correctly

It's a special case because both are combined into a single array.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Dave Airlie <airlied at redhat.com>

---

 src/amd/vulkan/radv_shader_info.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c
index 5925fd924c..6262acb1a6 100644
--- a/src/amd/vulkan/radv_shader_info.c
+++ b/src/amd/vulkan/radv_shader_info.c
@@ -128,6 +128,14 @@ set_output_usage_mask(const nir_shader *nir, const nir_intrinsic_instr *instr,
 
 	get_deref_offset(deref_instr, &const_offset);
 
+	if (idx == VARYING_SLOT_CLIP_DIST0) {
+		/* Special case for clip/cull distances because there are
+		 * combined into a single array that contains both.
+		 */
+		output_usage_mask[idx] |= 1 << const_offset;
+		return;
+	}
+
 	for (unsigned i = 0; i < attrib_count; i++) {
 		output_usage_mask[idx + i + const_offset] |=
 			instr->const_index[0] << comp;




More information about the mesa-commit mailing list