mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-28 03:28:10 +02:00
If the lane from which the hardware writes the unifa address
is disabled, then we may end up with a bogus address and invalid
memory accesses from follow-up ldunifa.
Instead of always disabling unifa loads in non-uniform control
flow we can try to see if the address is prouced from a nir
register (which is the only case where we do conditional writes
under non-uniform control flow in ntq_store_def), and only
disable it in that case.
When enabling subgroups for graphics pipelines, this fixes a
GMP violation in the simulator with the following test
(which has non-uniform control flow writing unifa with lane 0
disabled, which is the lane from which the unifa takes the
address):
dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcastfirst_int
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27211>
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| ci | ||
| cle | ||
| clif | ||
| common | ||
| compiler | ||
| drm-shim | ||
| qpu | ||
| simulator | ||
| vulkan | ||
| .editorconfig | ||
| meson.build | ||