diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 71760293c09..e8db770eede 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -2829,6 +2829,8 @@ radv_link_shaders(struct radv_pipeline *pipeline, for (int i = 1; i < shader_count; ++i) { nir_lower_io_arrays_to_elements(ordered_shaders[i], ordered_shaders[i - 1]); + nir_validate_shader(ordered_shaders[i], "after nir_lower_io_arrays_to_elements"); + nir_validate_shader(ordered_shaders[i - 1], "after nir_lower_io_arrays_to_elements"); } for (int i = 0; i < shader_count; ++i) { @@ -2961,6 +2963,9 @@ radv_link_shaders(struct radv_pipeline *pipeline, for (int i = 1; !optimize_conservatively && (i < shader_count); ++i) { if (nir_link_opt_varyings(ordered_shaders[i], ordered_shaders[i - 1])) { + nir_validate_shader(ordered_shaders[i], "after nir_link_opt_varyings"); + nir_validate_shader(ordered_shaders[i - 1], "after nir_link_opt_varyings"); + NIR_PASS(_, ordered_shaders[i - 1], nir_opt_constant_folding); NIR_PASS(_, ordered_shaders[i - 1], nir_opt_algebraic); NIR_PASS(_, ordered_shaders[i - 1], nir_opt_dce); @@ -2972,6 +2977,8 @@ radv_link_shaders(struct radv_pipeline *pipeline, bool progress = nir_remove_unused_varyings(ordered_shaders[i], ordered_shaders[i - 1]); nir_compact_varyings(ordered_shaders[i], ordered_shaders[i - 1], true); + nir_validate_shader(ordered_shaders[i], "after nir_compact_varyings"); + nir_validate_shader(ordered_shaders[i - 1], "after nir_compact_varyings"); if (ordered_shaders[i]->info.stage == MESA_SHADER_MESH) { /* nir_compact_varyings can change the location of per-vertex and per-primitive outputs */ nir_shader_gather_info(ordered_shaders[i], nir_shader_get_entrypoint(ordered_shaders[i]));