[Mesa-dev] [PATCH 7/8] radv: enable nir varying array splitting

Timothy Arceri tarceri at itsqueeze.com
Tue Nov 21 03:28:10 UTC 2017


---
 src/amd/vulkan/radv_pipeline.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index faffca8330..03a8bd8604 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -1675,20 +1675,23 @@ radv_link_shaders(struct radv_pipeline *pipeline, nir_shader **shaders)
 		ordered_shaders[shader_count++] = shaders[MESA_SHADER_TESS_EVAL];
 	}
 	if(shaders[MESA_SHADER_TESS_CTRL]) {
 		ordered_shaders[shader_count++] = shaders[MESA_SHADER_TESS_CTRL];
 	}
 	if(shaders[MESA_SHADER_VERTEX]) {
 		ordered_shaders[shader_count++] = shaders[MESA_SHADER_VERTEX];
 	}
 
 	for (int i = 1; i < shader_count; ++i)  {
+		nir_lower_io_arrays_to_elements(ordered_shaders[i],
+						ordered_shaders[i - 1]);
+
 		nir_remove_dead_variables(ordered_shaders[i],
 					  nir_var_shader_out);
 		nir_remove_dead_variables(ordered_shaders[i - 1],
 					  nir_var_shader_in);
 
 		bool progress = nir_remove_unused_varyings(ordered_shaders[i],
 							   ordered_shaders[i - 1]);
 
 		if (progress) {
 			nir_lower_global_vars_to_local(ordered_shaders[i]);
-- 
2.14.3



More information about the mesa-dev mailing list