From: Hyunjun Ko Date: Tue, 17 Mar 2020 03:57:03 +0000 (+0000) Subject: turnip: Do gathering xfb info after nir_remove_dead_variables X-Git-Tag: upstream/20.1.8~2299 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a6625b15a466e2648a35810c64df882ea869971c;p=platform%2Fupstream%2Fmesa.git turnip: Do gathering xfb info after nir_remove_dead_variables So we could align stream outputs correctly even if unused in/outs are removed. Fixes: dEQP-VK.transform_feedback.fuzz.random_vertex.scalar_types.* dEQP-VK.transform_feedback.fuzz.random_vertex.vector_types.* Signed-off-by: Hyunjun Ko Reviewed-by: Jonathan Marek Tested-by: Marge Bot Part-of: --- diff --git a/src/freedreno/vulkan/tu_shader.c b/src/freedreno/vulkan/tu_shader.c index 1fcdccd..1deb19d 100644 --- a/src/freedreno/vulkan/tu_shader.c +++ b/src/freedreno/vulkan/tu_shader.c @@ -481,17 +481,19 @@ tu_shader_create(struct tu_device *dev, NIR_PASS_V(nir, nir_split_var_copies); NIR_PASS_V(nir, nir_split_per_member_structs); + NIR_PASS_V(nir, nir_remove_dead_variables, + nir_var_shader_in | nir_var_shader_out | nir_var_system_value | nir_var_mem_shared); + /* Gather information for transform feedback. * This should be called after nir_split_per_member_structs. + * Also needs to be called after nir_remove_dead_variables with varyings, + * so that we could align stream outputs correctly. */ if (nir->info.stage == MESA_SHADER_VERTEX || nir->info.stage == MESA_SHADER_TESS_EVAL || nir->info.stage == MESA_SHADER_GEOMETRY) tu_gather_xfb_info(nir, shader); - NIR_PASS_V(nir, nir_remove_dead_variables, - nir_var_shader_in | nir_var_shader_out | nir_var_system_value | nir_var_mem_shared); - NIR_PASS_V(nir, nir_propagate_invariant); NIR_PASS_V(nir, nir_lower_io_to_temporaries, nir_shader_get_entrypoint(nir), true, true);