mesa/src/panfrost
Alyssa Rosenzweig b2f475251e pan/mdg: Test for SSA before chasing addresses
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: f5401cb886 ("pan/midgard: Add address analysis framework")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6144>
2020-08-03 09:43:47 -04:00
..
bifrost pan/bit: Remove BI_SHIFT stub 2020-07-31 10:15:00 -04:00
encoder panfrost: Make panfrost_bo_wait take a wait_readers bool 2020-07-18 01:36:59 +00:00
include panfrost: 8x MRT support 2020-07-20 14:15:49 +00:00
midgard pan/mdg: Test for SSA before chasing addresses 2020-08-03 09:43:47 -04:00
pandecode pan/decode: Open the dump file later 2020-07-16 21:33:13 +00:00
shared meson: use gnu_symbol_visibility argument 2020-06-01 18:59:18 +00:00
util pan/mdg: Do per-sample framebuffer loads 2020-07-17 14:34:47 +00:00
Android.bifrost.mk panfrost: Align Android makefiles with recent changes 2020-04-22 00:27:15 +00:00
Android.encoder.mk android: panfrost/encoder: add libmesa_nir static dependency 2020-07-18 08:28:27 +02:00
Android.midgard.mk panfrost: Align Android makefiles with recent changes 2020-03-23 14:03:22 +00:00
Android.mk panfrost: Align Android makefiles with recent changes 2020-03-23 14:03:22 +00:00
Android.pandecode.mk android: Add panfrost support to build scripts 2019-10-31 10:03:54 +01:00
Android.shared.mk android: Add panfrost support to build scripts 2019-10-31 10:03:54 +01:00
Android.util.mk panfrost: Align Android makefiles with recent changes 2020-03-23 14:03:22 +00:00
Makefile.sources panfrost: Use Midgard-specific reloads 2020-07-16 15:10:55 +00:00
meson.build panfrost: don't always build bifrost_compiler 2020-05-09 01:27:41 +00:00