[Mesa-dev] [PATCH 0/7] radv: add support for the new subgroup capabilities
Daniel Schürmann
daniel.schuermann at campus.tu-berlin.de
Thu Mar 8 17:10:37 UTC 2018
This patch series implements the following SPIR-V capabilities for RADV:
GroupNonUniform
GroupNonUniformVote
GroupNonUniformArithmetic
GroupNonUniformBallot
GroupNonUniformShuffle
GroupNonUniformShuffleRelative
GroupNonUniformQuad
Not yet supported is the GroupNonUniformClustered capability due to a bug in the LLVM WWM liveness analysis.
Except for GroupNonUniformArithmetic, the capabilities should also work on pre-VI chip class (untested).
To add support for GroupNonUniformArithmetic on pre-VI chip class, in/exclusive scan has to be implemented using the according instructions.
Daniel Schürmann (7):
nir: adjust subgroups instructions for 64bit ballot sizes
nir/spirv: propagate constants of GroupNonUniformQuad instructions and
eliminate warning
ac: lower 64bit subgroup intrinsics
ac: make ballot and umsb capable of 64bit inputs
ac: add LLVM build functions for subgroup instrinsics
ac: handle subgroup intrinsics
radv: enable subgroup capabilities
src/amd/common/ac_llvm_build.c | 508 ++++++++++++++++++++++++++++++++-
src/amd/common/ac_llvm_build.h | 33 ++-
src/amd/common/ac_lower_subgroups.c | 50 +++-
src/amd/common/ac_nir_to_llvm.c | 66 +++--
src/amd/vulkan/radv_device.c | 12 +-
src/amd/vulkan/radv_shader.c | 6 +-
src/compiler/nir/nir_lower_subgroups.c | 5 +-
src/compiler/nir/nir_opcodes.py | 12 +-
src/compiler/spirv/vtn_subgroup.c | 8 +-
9 files changed, 643 insertions(+), 57 deletions(-)
--
2.14.1
More information about the mesa-dev
mailing list