mesa/src/broadcom
Iago Toral Quiroga a3a927a1cd broadcom/compiler: be more careful with unifa in non-uniform control flow
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 5b269814fcfcc2a947b8abc0dc4144124e7e59b2)
2024-01-31 22:21:24 +00:00
..
ci ci/deqp: uprev deqp-runner for Linux too to 0.18.0 2024-01-17 23:29:18 +00:00
cle broadcom/compiler: remove include of gallium headers from meson.build 2023-12-12 10:03:11 +00:00
clif
common v3d/v3dv: move V3D_CSD definitions to a separate file 2023-12-14 16:43:13 +00:00
compiler broadcom/compiler: be more careful with unifa in non-uniform control flow 2024-01-31 22:21:24 +00:00
drm-shim broadcom/compiler: remove include of gallium headers from meson.build 2023-12-12 10:03:11 +00:00
qpu broadcom/compiler: remove include of gallium headers from meson.build 2023-12-12 10:03:11 +00:00
simulator v3dv: enable CPU jobs in the simulator 2023-12-14 16:43:14 +00:00
vulkan nir: rework and fix rotate lowering 2024-01-23 20:34:30 +00:00
.editorconfig
meson.build broadcom/compiler: remove include of gallium headers from meson.build 2023-12-12 10:03:11 +00:00