diff options
author | Bas Nieuwenhuizen <[email protected]> | 2018-02-05 22:54:18 +0100 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2018-03-07 21:18:32 +0100 |
commit | 97f10934edf8ac02f28fccea0bcbbe9293375357 (patch) | |
tree | d0af38ad0594961185a9f8a2ff31a88caa76fd4e /src/amd/common/ac_nir_to_llvm.h | |
parent | c217607b65ae00918ea86454eb59e6ee69c6ea68 (diff) |
ac/nir: Add vote_ieq/vote_feq lowering pass.
The old vote_eq implementation supported only booleans, but now
we have to support arbitrary values, so use the read_first_invocation
intrinsic + ballot.
I took this as an opportunity to figure out how easy it was to do this
in nir instead of in the nir_to_llvm pass, and it actually turned out
pretty okay IMO. Only creating the pass is some extra code.
Reviewed-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/amd/common/ac_nir_to_llvm.h')
-rw-r--r-- | src/amd/common/ac_nir_to_llvm.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/amd/common/ac_nir_to_llvm.h b/src/amd/common/ac_nir_to_llvm.h index 870e7f8988c..983189eb93a 100644 --- a/src/amd/common/ac_nir_to_llvm.h +++ b/src/amd/common/ac_nir_to_llvm.h @@ -235,4 +235,6 @@ void ac_lower_indirect_derefs(struct nir_shader *nir, enum chip_class); void ac_nir_translate(struct ac_llvm_context *ac, struct ac_shader_abi *abi, struct nir_shader *nir); +bool ac_lower_subgroups(struct nir_shader *shader); + #endif /* AC_NIR_TO_LLVM_H */ |