panvk: Fix varying linking

Since 2316b80d77 ("panfrost: Don't use nir_variable to link varyings"), we can
only get correct type information from the fragment shader inputs (not the
vertex shader output). Fixes piles of CTS regressions.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21257>
This commit is contained in:
Alyssa Rosenzweig
2023-02-07 13:23:54 -05:00
committed by Marge Bot
parent 1ba20868c4
commit 6142d50375
+8
View File
@@ -772,6 +772,14 @@ panvk_pipeline_update_varying_slot(struct panvk_varyings_info *varyings,
if (old_size < new_size)
varyings->varying[loc].format = new_fmt;
/* Type (float or not) information is only known in the fragment shader, so
* override for that
*/
if (input) {
assert(stage == MESA_SHADER_FRAGMENT && "no geom/tess on Bifrost");
varyings->varying[loc].format = new_fmt;
}
varyings->buf_mask |= 1 << buf_id;
}