nir/opt_varyings: assign locations of no_varying IO for TCS outputs only

Skip the code for other shader stages because it doesn't do anything there.

Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31670>
This commit is contained in:
Marek Olšák
2024-10-02 18:29:55 -04:00
committed by Marge Bot
parent 01586bc57e
commit 8e93907b7c
+9 -7
View File
@@ -4190,13 +4190,15 @@ compact_varyings(struct linkage_info *linkage,
vs_tcs_tes_gs_assign_slots(linkage, linkage->flat16_mask, &slot_index,
&patch_slot_index, 1, progress);
/* Put no-varying slots last. These are TCS outputs read by TCS but not
* TES.
*/
vs_tcs_tes_gs_assign_slots(linkage, linkage->no_varying32_mask, &slot_index,
&patch_slot_index, 2, progress);
vs_tcs_tes_gs_assign_slots(linkage, linkage->no_varying16_mask, &slot_index,
&patch_slot_index, 1, progress);
if (linkage->producer_stage == MESA_SHADER_TESS_CTRL) {
/* Put no-varying slots last. These are TCS outputs read by TCS but
* not TES.
*/
vs_tcs_tes_gs_assign_slots(linkage, linkage->no_varying32_mask,
&slot_index, &patch_slot_index, 2, progress);
vs_tcs_tes_gs_assign_slots(linkage, linkage->no_varying16_mask,
&slot_index, &patch_slot_index, 1, progress);
}
assert(slot_index <= VARYING_SLOT_MAX * 8);
assert(patch_slot_index <= VARYING_SLOT_TESS_MAX * 8);