Second version of the series: - removed GroupNonUniformArithmetic from supported capabilites as we cannot guarantee that LLVM WWM liveness issues won't affect the behavior. - reworked and moved lowering of 64bit shuffle intrinsics to nir_lower_subgroups. - Quad shuffles use ds_swizzle on pre-VI hardware or LLVM < 6.
Daniel Schürmann (7): nir: adjust subgroups instructions for 64bit ballot sizes nir/spirv: propagate constants of GroupNonUniformQuad instructions, eliminate warning and fix breaks nir: lower 64bit subgroup shuffle 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_nir_to_llvm.c | 66 +++-- src/amd/vulkan/radv_device.c | 10 +- src/amd/vulkan/radv_shader.c | 7 +- src/compiler/nir/nir.h | 1 + src/compiler/nir/nir_lower_subgroups.c | 88 ++++-- src/compiler/nir/nir_opcodes.py | 12 +- src/compiler/spirv/spirv_to_nir.c | 2 + src/compiler/spirv/vtn_subgroup.c | 8 +- 10 files changed, 665 insertions(+), 70 deletions(-) -- 2.14.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev