diff options
author | Rodrigo Locatti <reinuseslisp@airmail.cc> | 2020-03-31 05:56:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-31 05:56:28 +0200 |
commit | c19425ed69589dc4577b660cfb50c2f25a42582e (patch) | |
tree | f5888dc8ce3e6e65a5c7c061d099ea8473b71a38 /src/video_core/renderer_opengl | |
parent | Merge pull request #3566 from ReinUsesLisp/vk-wrapper-part1 (diff) | |
parent | clang-format (diff) | |
download | yuzu-c19425ed69589dc4577b660cfb50c2f25a42582e.tar yuzu-c19425ed69589dc4577b660cfb50c2f25a42582e.tar.gz yuzu-c19425ed69589dc4577b660cfb50c2f25a42582e.tar.bz2 yuzu-c19425ed69589dc4577b660cfb50c2f25a42582e.tar.lz yuzu-c19425ed69589dc4577b660cfb50c2f25a42582e.tar.xz yuzu-c19425ed69589dc4577b660cfb50c2f25a42582e.tar.zst yuzu-c19425ed69589dc4577b660cfb50c2f25a42582e.zip |
Diffstat (limited to 'src/video_core/renderer_opengl')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 8aa4a7ac9..c7d24cf14 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -2114,6 +2114,10 @@ private: template <const std::string_view& opname, Type type> Expression Atomic(Operation operation) { + if ((opname == Func::Min || opname == Func::Max) && type == Type::Int) { + UNIMPLEMENTED_MSG("Unimplemented Min & Max for atomic operations"); + return {}; + } return {fmt::format("atomic{}({}, {})", opname, Visit(operation[0]).GetCode(), Visit(operation[1]).As(type)), type}; @@ -2307,6 +2311,8 @@ private: ~Func() = delete; static constexpr std::string_view Add = "Add"; + static constexpr std::string_view Min = "Min"; + static constexpr std::string_view Max = "Max"; static constexpr std::string_view And = "And"; static constexpr std::string_view Or = "Or"; static constexpr std::string_view Xor = "Xor"; @@ -2457,7 +2463,21 @@ private: &GLSLDecompiler::AtomicImage<Func::Xor>, &GLSLDecompiler::AtomicImage<Func::Exchange>, + &GLSLDecompiler::Atomic<Func::Exchange, Type::Uint>, &GLSLDecompiler::Atomic<Func::Add, Type::Uint>, + &GLSLDecompiler::Atomic<Func::Min, Type::Uint>, + &GLSLDecompiler::Atomic<Func::Max, Type::Uint>, + &GLSLDecompiler::Atomic<Func::And, Type::Uint>, + &GLSLDecompiler::Atomic<Func::Or, Type::Uint>, + &GLSLDecompiler::Atomic<Func::Xor, Type::Uint>, + + &GLSLDecompiler::Atomic<Func::Exchange, Type::Int>, + &GLSLDecompiler::Atomic<Func::Add, Type::Int>, + &GLSLDecompiler::Atomic<Func::Min, Type::Int>, + &GLSLDecompiler::Atomic<Func::Max, Type::Int>, + &GLSLDecompiler::Atomic<Func::And, Type::Int>, + &GLSLDecompiler::Atomic<Func::Or, Type::Int>, + &GLSLDecompiler::Atomic<Func::Xor, Type::Int>, &GLSLDecompiler::Branch, &GLSLDecompiler::BranchIndirect, |