mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-21 12:00:41 +02:00
nir/lower_io: don't reduce range if parent length is zero
When handling arrays, range is increased based on the array size minus
one. But if such is zero, it has the effect of reducing the
range. Handle that case by returning the unknown range value.
v2:
* Add missing braces.
* Return unknown range in this case, instead of keeping the initial
range.
v3: Simplify code, using existing "fail" label. (Jason)
Fixes the following using v3dv:
dEQP-VK.graphicsfuzz.cov-simplify-clamp-max-itself
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6737>
This commit is contained in:
parent
a51aa6feb4
commit
2aaa1564ad
1 changed files with 5 additions and 2 deletions
|
|
@ -982,10 +982,13 @@ nir_get_explicit_deref_range(nir_deref_instr *deref,
|
|||
goto fail;
|
||||
|
||||
if (deref->deref_type != nir_deref_type_array_wildcard &&
|
||||
nir_src_is_const(deref->arr.index))
|
||||
nir_src_is_const(deref->arr.index)) {
|
||||
base += stride * nir_src_as_uint(deref->arr.index);
|
||||
else
|
||||
} else {
|
||||
if (glsl_get_length(parent->type) == 0)
|
||||
goto fail;
|
||||
range += stride * (glsl_get_length(parent->type) - 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue