nir/lower_io_to_vector: check centroid & sample when merge variable

These qualifiers should be respected for different varying load code
generation.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12537>
This commit is contained in:
Qiang Yu 2021-08-25 09:32:52 +08:00 committed by Marge Bot
parent 1fd3cf990e
commit 5a24aed1ac

View file

@ -127,7 +127,9 @@ variables_can_merge(const nir_shader *shader,
assert(a->data.mode == b->data.mode);
if (shader->info.stage == MESA_SHADER_FRAGMENT &&
a->data.mode == nir_var_shader_in &&
a->data.interpolation != b->data.interpolation)
(a->data.interpolation != b->data.interpolation ||
a->data.centroid != b->data.centroid ||
a->data.sample != b->data.sample))
return false;
if (shader->info.stage == MESA_SHADER_FRAGMENT &&