Mesa (master): radv: scan the geometry shader output usage mask

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Mon May 14 19:38:00 UTC 2018


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Mon May 14 16:04:35 2018 +0200

radv: scan the geometry shader output usage mask

For reducing the number of parameters that are exported by
the GS copy shader.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/vulkan/radv_shader.h      | 3 +++
 src/amd/vulkan/radv_shader_info.c | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h
index b711cba80c..679fa44279 100644
--- a/src/amd/vulkan/radv_shader.h
+++ b/src/amd/vulkan/radv_shader.h
@@ -159,6 +159,9 @@ struct radv_shader_info {
 	} vs;
 	struct {
 		uint8_t output_usage_mask[VARYING_SLOT_VAR31 + 1];
+	} gs;
+	struct {
+		uint8_t output_usage_mask[VARYING_SLOT_VAR31 + 1];
 	} tes;
 	struct {
 		bool force_persample;
diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c
index a436bd7534..b45b4c0c95 100644
--- a/src/amd/vulkan/radv_shader_info.c
+++ b/src/amd/vulkan/radv_shader_info.c
@@ -134,6 +134,12 @@ gather_intrinsic_store_var_info(const nir_shader *nir,
 					instr->const_index[0] << comp;
 			}
 			break;
+		case MESA_SHADER_GEOMETRY:
+			for (unsigned i = 0; i < attrib_count; i++) {
+				info->gs.output_usage_mask[idx + i + const_offset] |=
+					instr->const_index[0] << comp;
+			}
+			break;
 		case MESA_SHADER_TESS_EVAL:
 			for (unsigned i = 0; i < attrib_count; i++) {
 				info->tes.output_usage_mask[idx + i + const_offset] |=




More information about the mesa-commit mailing list