mesa/src/freedreno
Connor Abbott 4282386311 nir/spirv: Add inverse_ballot intrinsic
This is actually a no-op on AMD, so we really don't want to lower it to
something more complicated.  There may be a more efficient way to do
this on Intel too. In addition, in the future we'll want to use this for
lowering boolean reduce operations, where the inverse ballot will
operate on the backend's "natural" ballot type as indicated by
options->ballot_bit_size, instead of uvec4 as produced by SPIR-V. In
total, there are now three possible lowerings we may have to perform:

- inverse_ballot with source type of uvec4 from SPIR-V to inverse_ballot
with natural source type, when the backend supports inverse_ballot
natively.
- inverse_ballot with source type of uvec4 from SPIR-V to arithmetic,
when the backend doesn't support inverse_ballot.
- inverse_ballot with natural source type from reduce operation, when
the backend doesn't support inverse_ballot.

Previously we just did the second lowering unconditionally in vtn, but
it's just a combination of the first and third. We add support here for
the first and third lowerings in nir_lower_subgroups, instead of simply
moving the second lowering, to avoid unnecessary churn.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25123>
2023-09-20 14:41:18 +00:00
..
.gitlab-ci tu: Rename PrimID-related registers 2023-09-11 10:34:10 +00:00
afuc freedreno/afuc: Initial a7xx support 2023-07-28 18:41:58 +00:00
ci tu: Actually emit patchpoint for viewports with FDM 2023-09-15 13:02:34 +00:00
common freedreno: Include speedbin fallback in 740 chipid to fix probing 2023-09-13 15:27:17 +00:00
computerator freedreno/computerator: Fix remaining issues with A7XX 2023-09-05 16:19:29 +00:00
decode freedreno/replay: Fix implicit-function-declaration error 2023-09-18 09:45:48 +00:00
drm freedreno/drm/virtio: Use global_faults 2023-08-08 00:20:48 +00:00
drm-shim freedreno: decouple compiler and vulkan driver from gallium 2023-08-03 07:29:36 +00:00
ds meson: remove needless c++17-overrides 2023-05-19 12:45:31 +00:00
fdl freedreno/a6xx: Add L8_SRGB 2023-09-20 00:55:29 +00:00
ir2 freedreno/ir2: Re-indent 2021-04-17 15:38:56 +00:00
ir3 nir/spirv: Add inverse_ballot intrinsic 2023-09-20 14:41:18 +00:00
isa ir3/a7xx: Add ccinv instruction 2023-09-05 16:19:30 +00:00
perfcntrs freedreno: decouple compiler and vulkan driver from gallium 2023-08-03 07:29:36 +00:00
registers tu: Rename PrimID-related registers 2023-09-11 10:34:10 +00:00
rnn freedreno/rnn: Remove %n usage in fprintf 2023-09-13 22:20:13 +00:00
vulkan treewide: Drop nir_ssa_for_src users 2023-09-18 10:25:17 -04:00
.clang-format clang-format: Disable formatting by default 2023-08-13 16:48:49 +02:00
.dir-locals.el freedreno: Update editorconfig and emacs settings for freedreno reformat. 2021-05-10 23:16:00 +00:00
.editorconfig freedreno: Update editorconfig and emacs settings for freedreno reformat. 2021-05-10 23:16:00 +00:00
meson.build meson: use a single dependency call for lua 2023-09-15 18:01:38 +00:00