mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-19 02:48:07 +02:00
It's possible an SSA value depends on a register; in this case, chasing
the source would result in a crash as the chase helper in NIR asserts
is_ssa. Instead we should check a priori that all the argments are in
fact SSA, bailing otherwise.
In the piglit shader exhibiting this bug (by looping over the index),
bailing on the ishl instruction is -necessary-. This is not merely us
being cowardly to avoid seeing through the registers; indeed, if we
wrote away the ishl instruction, the shift itself would have to be
stored in a load/store register (r26/r27) which would preclude reading
it in the loop, creating a register allocation failure later in the
compile. So this is the correct solution due to the restricted
semantics.
Closes #3286
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reported-by: Icecream95 <ixn@keemail.me>
Fixes:
|
||
|---|---|---|
| .. | ||
| bifrost | ||
| encoder | ||
| include | ||
| midgard | ||
| pandecode | ||
| shared | ||
| util | ||
| Android.bifrost.mk | ||
| Android.encoder.mk | ||
| Android.midgard.mk | ||
| Android.mk | ||
| Android.pandecode.mk | ||
| Android.shared.mk | ||
| Android.util.mk | ||
| Makefile.sources | ||
| meson.build | ||