[Mesa-dev] [PATCH 0/2] nir: Move the si vote lowering to common code

Jason Ekstrand jason at jlekstrand.net
Sat Mar 10 18:18:46 UTC 2018


This tiny series moves the pass that Bas wrote for lowering vote
instructions to ballots into common code.  As you can see from the diffstat
below, it cuts the size of the pass in half by removing boilerplate.  The
new version (in nir_lower_subgroups) also contains two bugfixes:

 1) The old pass wasn't actually inserting the RFI instruction

 2) The old pass wouldn't handle NaN correctly in feq because it switched
    to effectively using ineg(fne(a, b)) which is not the same as feq(a, b)
    when NaN is present.

This has not been tested at all beyond compile-testing (and I didn't even
compile-test radv).

Cc: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Cc: Timothy Arceri <tarceri at itsqueeze.com>

Jason Ekstrand (2):
  nir/subgroups: Add lowering for vote_ieq/vote_feq to a ballot
  ac/nir: Use lower_vote_eq_to_ballot instead of ac_nir_lower_subgroups

 src/amd/Makefile.sources                     |  1 -
 src/amd/common/ac_lower_subgroups.c          | 92 ----------------------------
 src/amd/common/ac_nir_to_llvm.c              |  3 -
 src/amd/common/ac_nir_to_llvm.h              |  2 -
 src/amd/common/meson.build                   |  1 -
 src/compiler/nir/nir.h                       |  1 +
 src/compiler/nir/nir_lower_subgroups.c       | 48 +++++++++++++++
 src/gallium/drivers/radeonsi/si_shader_nir.c |  1 +
 8 files changed, 50 insertions(+), 99 deletions(-)
 delete mode 100644 src/amd/common/ac_lower_subgroups.c

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list