mesa/src/intel
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
..
blorp blorp: fix hangs with mesh enabled 2023-09-12 02:51:31 +00:00
ci ci/intel: Add various updates from our nightly runs. 2023-09-19 22:50:07 +00:00
common intel/common: Add sse2_args for 32-bit build when -Dsse2=false was set 2023-09-15 17:39:55 -07:00
compiler nir/spirv: Add inverse_ballot intrinsic 2023-09-20 14:41:18 +00:00
dev intel: Sync xe_drm.h 2023-09-13 16:38:15 +00:00
ds intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
genxml intel/genxml: Auto-import genxml files using genxml_import.py 2023-09-14 11:05:16 -07:00
isl isl/tilememcpy_test: add multiple tile testing 2023-09-02 21:49:05 -07:00
nullhw-layer meson: support installation tags 2023-09-11 13:00:45 +00:00
perf intel: Move i915_drm.h specific code from common/intel_gem.h to common/i915/intel_gem.h 2023-07-28 15:36:52 +00:00
tools intel/common: Move intel_clflush.h to intel_mem.h/intel_mem.c 2023-09-06 01:39:53 +00:00
vulkan anv: refactor to fix pipe control debugging 2023-09-20 06:04:37 +00:00
vulkan_hasvk treewide: Drop nir_ssa_for_src users 2023-09-18 10:25:17 -04:00
meson.build intel: Only build perf if drivers or tools are enabled 2023-08-31 21:53:19 +00:00