diff options
| author | 2021-03-26 01:54:03 +0100 | |
|---|---|---|
| committer | 2021-07-22 21:51:24 -0400 | |
| commit | 981eb6f43bb88f1e57b4c657bf37cb7471a113e3 (patch) | |
| tree | ed93c89e8167195dabce120f2dca32e39d3b296e | |
| parent | shader: Implement FragDepth (diff) | |
| download | yuzu-981eb6f43bb88f1e57b4c657bf37cb7471a113e3.tar.gz yuzu-981eb6f43bb88f1e57b4c657bf37cb7471a113e3.tar.xz yuzu-981eb6f43bb88f1e57b4c657bf37cb7471a113e3.zip | |
shader: Fix Array Indices in TEX/TLD4
Diffstat (limited to '')
| -rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch.cpp | 6 | ||||
| -rw-r--r-- | src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch.cpp index d2626f3e7..1f1689c43 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch.cpp | |||
| @@ -61,11 +61,11 @@ IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, TextureType type) { | |||
| 61 | case TextureType::_1D: | 61 | case TextureType::_1D: |
| 62 | return v.F(reg); | 62 | return v.F(reg); |
| 63 | case TextureType::ARRAY_1D: | 63 | case TextureType::ARRAY_1D: |
| 64 | return v.ir.CompositeConstruct(read_array(), v.F(reg + 1)); | 64 | return v.ir.CompositeConstruct(v.F(reg + 1), read_array()); |
| 65 | case TextureType::_2D: | 65 | case TextureType::_2D: |
| 66 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1)); | 66 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1)); |
| 67 | case TextureType::ARRAY_2D: | 67 | case TextureType::ARRAY_2D: |
| 68 | return v.ir.CompositeConstruct(read_array(), v.F(reg + 1), v.F(reg + 2)); | 68 | return v.ir.CompositeConstruct(v.F(reg + 1), v.F(reg + 2), read_array()); |
| 69 | case TextureType::_3D: | 69 | case TextureType::_3D: |
| 70 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2)); | 70 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2)); |
| 71 | case TextureType::ARRAY_3D: | 71 | case TextureType::ARRAY_3D: |
| @@ -73,7 +73,7 @@ IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, TextureType type) { | |||
| 73 | case TextureType::CUBE: | 73 | case TextureType::CUBE: |
| 74 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2)); | 74 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2)); |
| 75 | case TextureType::ARRAY_CUBE: | 75 | case TextureType::ARRAY_CUBE: |
| 76 | return v.ir.CompositeConstruct(read_array(), v.F(reg + 1), v.F(reg + 2), v.F(reg + 3)); | 76 | return v.ir.CompositeConstruct(v.F(reg + 1), v.F(reg + 2), v.F(reg + 3), read_array()); |
| 77 | } | 77 | } |
| 78 | throw NotImplementedException("Invalid texture type {}", type); | 78 | throw NotImplementedException("Invalid texture type {}", type); |
| 79 | } | 79 | } |
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp index d64865876..8c6384040 100644 --- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp +++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp | |||
| @@ -65,11 +65,11 @@ IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, TextureType type) { | |||
| 65 | case TextureType::_1D: | 65 | case TextureType::_1D: |
| 66 | return v.F(reg); | 66 | return v.F(reg); |
| 67 | case TextureType::ARRAY_1D: | 67 | case TextureType::ARRAY_1D: |
| 68 | return v.ir.CompositeConstruct(read_array(), v.F(reg + 1)); | 68 | return v.ir.CompositeConstruct(v.F(reg + 1), read_array()); |
| 69 | case TextureType::_2D: | 69 | case TextureType::_2D: |
| 70 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1)); | 70 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1)); |
| 71 | case TextureType::ARRAY_2D: | 71 | case TextureType::ARRAY_2D: |
| 72 | return v.ir.CompositeConstruct(read_array(), v.F(reg + 1), v.F(reg + 2)); | 72 | return v.ir.CompositeConstruct(v.F(reg + 1), v.F(reg + 2), read_array()); |
| 73 | case TextureType::_3D: | 73 | case TextureType::_3D: |
| 74 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2)); | 74 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2)); |
| 75 | case TextureType::ARRAY_3D: | 75 | case TextureType::ARRAY_3D: |
| @@ -77,7 +77,7 @@ IR::Value MakeCoords(TranslatorVisitor& v, IR::Reg reg, TextureType type) { | |||
| 77 | case TextureType::CUBE: | 77 | case TextureType::CUBE: |
| 78 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2)); | 78 | return v.ir.CompositeConstruct(v.F(reg), v.F(reg + 1), v.F(reg + 2)); |
| 79 | case TextureType::ARRAY_CUBE: | 79 | case TextureType::ARRAY_CUBE: |
| 80 | return v.ir.CompositeConstruct(read_array(), v.F(reg + 1), v.F(reg + 2), v.F(reg + 3)); | 80 | return v.ir.CompositeConstruct(v.F(reg + 1), v.F(reg + 2), v.F(reg + 3), read_array()); |
| 81 | } | 81 | } |
| 82 | throw NotImplementedException("Invalid texture type {}", type); | 82 | throw NotImplementedException("Invalid texture type {}", type); |
| 83 | } | 83 | } |