[Mesa-dev] [PATCH 00/17] radv: Support for subgroup_vote and shader_ballot

Mike Lothian mike at fireburn.co.uk
Mon Jun 12 23:54:10 UTC 2017


I found some patches on the git mailing list but looks like none of them
have been merged

http://git.661346.n2.nabble.com/PATCH-send-mail-Add-option-to-sleep-between-sending-each-email-td6769476.html

On Mon, 12 Jun 2017 at 23:22 Connor Abbott <cwabbott0 at gmail.com> wrote:

> On Mon, Jun 12, 2017 at 2:30 AM, Nicolai Hähnle <nhaehnle at gmail.com>
> wrote:
> > FYI, somehow your mails don't show up in a single thread for me. They're
> in
> > groups of 00-04, 05-09, 10-14, 15-17. Not sure what's up with that.
>
> For some reason, the server at Valve rate-limits sending email, so git
> send-email failed when I tried to send them all at once, and I had to
> send some manually. Is there some way to automatically sleep between
> sending emails out?
>
> >
> > On 10.06.2017 01:43, Connor Abbott wrote:
> >>
> >> From: Connor Abbott <cwabbott0 at gmail.com>
> >>
> >> This series adds all the bits to enable EXT_shader_subgroup_vote and
> >> EXT_shader_subgroup_ballot for radv. It's based on my previous series to
> >> fix some 64-bit bugs in radv and anv, since nothing would work without
> >> them.
> >>
> >> Patches 1-4 are a resend of my previous series to add ARB_shader_ballot
> >> and ARB_shader_group_vote support to NIR, with some changes suggested by
> >> Jason and minor bugfixes. Patches 5-8 add SPIRV-to-NIR support for the
> >> SPIR-V extensions. Finally, the rest of the patches move some of the
> >> existing logic for ARB_shader_ballot and ARB_shader_group_vote into ac
> >> when appropriate and turn on the extension for radv.
> >>
> >> One question I had was about how to handle the differences between
> >> SPIR-V and GL here. SPIR-V decided to make the things that return a
> >> bitmask of invocations return a uvec4, whereas in the GL extension they
> >> return a uint64_t. Right now, in NIR, we use the GL semantics, and we
> >> translate that in vtn. I'm open to changing that, though.
> >
> >
> > Pragmatically, I'd say stick with the GL semantics for now. We'd only
> ever
> > have to change that if somebody decides to build a GPU with 128-wide
> waves,
> > but given how having wider waves increasingly hurts with divergence, that
> > seems unlikely to happen.
> >
> >
> >> I wrote a few crucible tests to test the extension (mostly copied from
> >> the piglit ARB_shader_ballot and ARB_shader_group_vote coverage), which
> >> I'll send out shortly. One of the tests is crashing because of
> >> https://github.com/KhronosGroup/glslang/issues/930, but other than that
> >> it passes the tests.
> >
> >
> > Looks like an alternative GLSL-to-SPIRV compiler would really be nice to
> > have...
> >
> > I've sent comments on some of the patches, mostly the NIR attribute
> stuff.
> > Sorry I didn't notice that sooner.
> >
> > Cheers,
> > Nicolai
> >
> >
> >
> >> I also made sure I didn't regress piglit on
> >> radeonsi. It might be a good idea to run it on Intel's CI system,
> >> especially given patches 5 and 6.
> >>
> >> This series is also available at:
> >> git://people.freedesktop.org/~cwabbott0/mesa radv-shader-ballot
> >>
> >> Connor Abbott (17):
> >>    nir: introduce new convergent and cross-thread attributes
> >>    nir/gcm: use the new cross-thread attribute
> >>    nir: take cross-thread operations into account into a few places
> >>    nir: add ARB_shader_ballot and ARB_shader_group_vote instructions
> >>    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
> >>    ac: add i32_0 convenience member to ac_llvm_context
> >>    radeonsi: move llvm_get_type_size() to ac
> >>    radeonsi: move emit_optimization_barrier() to ac
> >>    ac: add i64 type to ac_llvm_context
> >>    radeonsi: move si_emit_ballot() to ac
> >>    ac: add i32_1 convenience member to ac_llvm_context
> >>    radeonsi: move the guts of ARB_shader_group_vote emission to ac
> >>    ac: enable the AMDGPU asm parser
> >>    radv/ac: enable EXT_shader_subgroup_ballot and
> >>      EXT_shader_subgroup_vote
> >>
> >>   src/amd/common/ac_llvm_build.c             | 127
> >> +++++++++++++++++++++++++++
> >>   src/amd/common/ac_llvm_build.h             |  18 ++++
> >>   src/amd/common/ac_llvm_util.c              |   4 +
> >>   src/amd/common/ac_nir_to_llvm.c            |  75 ++++++++++++++++
> >>   src/amd/vulkan/radv_device.c               |   8 ++
> >>   src/amd/vulkan/radv_pipeline.c             |   2 +
> >>   src/compiler/nir/nir.c                     |  28 ++++++
> >>   src/compiler/nir/nir.h                     |  80 +++++++++++++++++
> >>   src/compiler/nir/nir_instr_set.c           |  22 +++++
> >>   src/compiler/nir/nir_intrinsics.h          |  30 +++++++
> >>   src/compiler/nir/nir_lower_system_values.c |  38 ++++++++
> >>   src/compiler/nir/nir_opt_gcm.c             |  72 +++++----------
> >>   src/compiler/nir/nir_opt_peephole_select.c |  11 +++
> >>   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          |  80 +++++++++++++++++
> >>   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 +-
> >>   24 files changed, 617 insertions(+), 182 deletions(-)
> >>
> >
> >
> > --
> > Lerne, wie die Welt wirklich ist,
> > Aber vergiss niemals, wie sie sein sollte.
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170612/a9314fc0/attachment.html>


More information about the mesa-dev mailing list