[Mesa-dev] [PATCH 00/10] radv: Support for subgroup_vote and shader_ballot (v2)

Connor Abbott connora at valvesoftware.com
Tue Aug 1 02:24:07 UTC 2017


From: Connor Abbott <cwabbott0 at gmail.com>

This is mostly a re-send of my previous series [1]. I've split out the
more controversial NIR attribute stuff into a separate series, which is
now independent of this one. The main change, other than rebasing stuff,
is that we now use the NIR lowering added by Matt for handling the
subgroup masks, rather than doing it ourselves while translating to
LLVM. That code still isn't tested thanks to [2], though.

Also, this requires some fixes for integer handling that I just sent
out, particularly the last one, for my crucible tests to work. This
series, including those fixes, is available at:

git://people.freedesktop.org/~cwabbott0/mesa radv-shader-ballot-v3

[1] https://lists.freedesktop.org/archives/mesa-dev/2017-June/158672.html
[2] https://github.com/KhronosGroup/glslang/issues/930

Connor Abbott (10):
  mesa: fix 64-bit issues with system_values_read
  compiler: add new system values for SPV_KHR_shader_ballot
  nir/lower_system_values: handle SPIR-V shader_ballot system values
  nir/spirv: add plumbing for KHR_shader_ballot and KHR_subgroup_vote
  radeonsi: move llvm_get_type_size() to ac
  radeonsi: move emit_optimization_barrier() to ac
  radeonsi: move si_emit_ballot() to ac
  radeonsi: move the guts of ARB_shader_group_vote emission to ac
  radv: call nir_opt_intrinsics()
  radv/ac: enable EXT_shader_subgroup_ballot and
    EXT_shader_subgroup_vote

 src/amd/common/ac_llvm_build.c             | 123 ++++++++++++++++++++++++++
 src/amd/common/ac_llvm_build.h             |  14 +++
 src/amd/common/ac_nir_to_llvm.c            |  49 +++++++++++
 src/amd/vulkan/radv_device.c               |   8 ++
 src/amd/vulkan/radv_pipeline.c             |   5 ++
 src/compiler/nir/nir_lower_system_values.c |  38 ++++++++
 src/compiler/shader_enums.c                |   5 ++
 src/compiler/shader_enums.h                |  11 +++
 src/compiler/spirv/nir_spirv.h             |   2 +
 src/compiler/spirv/spirv_to_nir.c          |  79 +++++++++++++++++
 src/compiler/spirv/vtn_variables.c         |  28 ++++++
 src/gallium/auxiliary/nir/tgsi_to_nir.c    |   2 +-
 src/gallium/drivers/radeonsi/si_shader.c   | 136 +++--------------------------
 src/intel/compiler/brw_vec4_gs_visitor.cpp |   3 +-
 src/mesa/program/programopt.c              |   2 +-
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |   9 +-
 src/mesa/state_tracker/st_mesa_to_tgsi.c   |   6 +-
 17 files changed, 387 insertions(+), 133 deletions(-)

-- 
2.9.4



More information about the mesa-dev mailing list