nir: fix PRIMITIVE_INDICES mistreated as varying

It's a sysval in mesh shader, but it share the same
slot number with VARYING_SLOT_TESS_LEVEL_INNER.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35931>
This commit is contained in:
Qiang Yu 2025-05-22 12:31:37 +08:00 committed by Marge Bot
parent 1dbe7b65a1
commit 35e3f4ee92

View file

@ -3507,7 +3507,10 @@ nir_slot_is_varying(gl_varying_slot slot, gl_shader_stage next_shader)
slot == VARYING_SLOT_LAYER ||
slot == VARYING_SLOT_VIEWPORT ||
slot == VARYING_SLOT_TESS_LEVEL_OUTER ||
slot == VARYING_SLOT_TESS_LEVEL_INNER ||
/* VARYING_SLOT_PRIMITIVE_INDICES = VARYING_SLOT_TESS_LEVEL_INNER,
* VARYING_SLOT_PRIMITIVE_INDICES is sysval in mesh shader.
*/
(slot == VARYING_SLOT_TESS_LEVEL_INNER && at_most_before_gs) ||
(slot == VARYING_SLOT_VIEW_INDEX && exactly_before_fs);
}