diff options
| author | 2019-07-17 21:03:53 -0300 | |
|---|---|---|
| committer | 2019-09-10 20:22:31 -0300 | |
| commit | 36abf67e79b234a361b99a342391249095ccd79c (patch) | |
| tree | 3e6e0e818e952a038fbe10262bf39cf6d52eaa61 /src/video_core/renderer_vulkan | |
| parent | Merge pull request #2823 from ReinUsesLisp/shr-clamp (diff) | |
| download | yuzu-36abf67e79b234a361b99a342391249095ccd79c.tar.gz yuzu-36abf67e79b234a361b99a342391249095ccd79c.tar.xz yuzu-36abf67e79b234a361b99a342391249095ccd79c.zip | |
shader/image: Implement SUATOM and fix SUST
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp index a35b45c9c..7675fc7b3 100644 --- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp +++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | |||
| @@ -944,6 +944,41 @@ private: | |||
| 944 | return {}; | 944 | return {}; |
| 945 | } | 945 | } |
| 946 | 946 | ||
| 947 | Id AtomicImageAdd(Operation operation) { | ||
| 948 | UNIMPLEMENTED(); | ||
| 949 | return {}; | ||
| 950 | } | ||
| 951 | |||
| 952 | Id AtomicImageMin(Operation operation) { | ||
| 953 | UNIMPLEMENTED(); | ||
| 954 | return {}; | ||
| 955 | } | ||
| 956 | |||
| 957 | Id AtomicImageMax(Operation operation) { | ||
| 958 | UNIMPLEMENTED(); | ||
| 959 | return {}; | ||
| 960 | } | ||
| 961 | |||
| 962 | Id AtomicImageAnd(Operation operation) { | ||
| 963 | UNIMPLEMENTED(); | ||
| 964 | return {}; | ||
| 965 | } | ||
| 966 | |||
| 967 | Id AtomicImageOr(Operation operation) { | ||
| 968 | UNIMPLEMENTED(); | ||
| 969 | return {}; | ||
| 970 | } | ||
| 971 | |||
| 972 | Id AtomicImageXor(Operation operation) { | ||
| 973 | UNIMPLEMENTED(); | ||
| 974 | return {}; | ||
| 975 | } | ||
| 976 | |||
| 977 | Id AtomicImageExchange(Operation operation) { | ||
| 978 | UNIMPLEMENTED(); | ||
| 979 | return {}; | ||
| 980 | } | ||
| 981 | |||
| 947 | Id Branch(Operation operation) { | 982 | Id Branch(Operation operation) { |
| 948 | const auto target = std::get_if<ImmediateNode>(&*operation[0]); | 983 | const auto target = std::get_if<ImmediateNode>(&*operation[0]); |
| 949 | UNIMPLEMENTED_IF(!target); | 984 | UNIMPLEMENTED_IF(!target); |
| @@ -1366,6 +1401,13 @@ private: | |||
| 1366 | &SPIRVDecompiler::TexelFetch, | 1401 | &SPIRVDecompiler::TexelFetch, |
| 1367 | 1402 | ||
| 1368 | &SPIRVDecompiler::ImageStore, | 1403 | &SPIRVDecompiler::ImageStore, |
| 1404 | &SPIRVDecompiler::AtomicImageAdd, | ||
| 1405 | &SPIRVDecompiler::AtomicImageMin, | ||
| 1406 | &SPIRVDecompiler::AtomicImageMax, | ||
| 1407 | &SPIRVDecompiler::AtomicImageAnd, | ||
| 1408 | &SPIRVDecompiler::AtomicImageOr, | ||
| 1409 | &SPIRVDecompiler::AtomicImageXor, | ||
| 1410 | &SPIRVDecompiler::AtomicImageExchange, | ||
| 1369 | 1411 | ||
| 1370 | &SPIRVDecompiler::Branch, | 1412 | &SPIRVDecompiler::Branch, |
| 1371 | &SPIRVDecompiler::BranchIndirect, | 1413 | &SPIRVDecompiler::BranchIndirect, |