zink: fix xfb analysis variable finding for arrays

this fixes clipdistance exports

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15224>
This commit is contained in:
Mike Blumenkrantz 2022-02-16 17:44:13 -05:00 committed by Marge Bot
parent 4ed7329236
commit 3f7da0c584

View file

@ -477,7 +477,7 @@ find_var_with_location_frac(nir_shader *nir, unsigned location, unsigned locatio
nir_foreach_shader_out_variable(var, nir) {
if (var->data.location == location &&
(var->data.location_frac == location_frac ||
glsl_get_vector_elements(var->type) >= location_frac + 1)) {
(glsl_type_is_array(var->type) ? glsl_array_size(var->type) : glsl_get_vector_elements(var->type)) >= location_frac + 1)) {
if (location != VARYING_SLOT_PSIZ || !have_psiz || var->data.explicit_location)
return var;
}