diff options
| author | 2021-08-01 18:57:45 -0300 | |
|---|---|---|
| committer | 2021-11-16 22:11:29 +0100 | |
| commit | e66d5b88a6f1c2d85c5cd8e351c6ed52c96a0ecf (patch) | |
| tree | 0107548906df0b9d42e89451489be6a54ed71bf3 /src/shader_recompiler/frontend | |
| parent | shader: Properly blacklist and scale image loads (diff) | |
| download | yuzu-e66d5b88a6f1c2d85c5cd8e351c6ed52c96a0ecf.tar.gz yuzu-e66d5b88a6f1c2d85c5cd8e351c6ed52c96a0ecf.tar.xz yuzu-e66d5b88a6f1c2d85c5cd8e351c6ed52c96a0ecf.zip | |
shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
Diffstat (limited to 'src/shader_recompiler/frontend')
| -rw-r--r-- | src/shader_recompiler/frontend/ir/ir_emitter.cpp | 4 | ||||
| -rw-r--r-- | src/shader_recompiler/frontend/ir/ir_emitter.h | 1 | ||||
| -rw-r--r-- | src/shader_recompiler/frontend/ir/opcodes.inc | 1 |
3 files changed, 6 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.cpp b/src/shader_recompiler/frontend/ir/ir_emitter.cpp index 3ccd91c10..356f889ac 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.cpp +++ b/src/shader_recompiler/frontend/ir/ir_emitter.cpp | |||
| @@ -1950,6 +1950,10 @@ U1 IREmitter::IsTextureScaled(const U32& index) { | |||
| 1950 | return Inst<U1>(Opcode::IsTextureScaled, index); | 1950 | return Inst<U1>(Opcode::IsTextureScaled, index); |
| 1951 | } | 1951 | } |
| 1952 | 1952 | ||
| 1953 | U1 IREmitter::IsImageScaled(const U32& index) { | ||
| 1954 | return Inst<U1>(Opcode::IsImageScaled, index); | ||
| 1955 | } | ||
| 1956 | |||
| 1953 | U1 IREmitter::VoteAll(const U1& value) { | 1957 | U1 IREmitter::VoteAll(const U1& value) { |
| 1954 | return Inst<U1>(Opcode::VoteAll, value); | 1958 | return Inst<U1>(Opcode::VoteAll, value); |
| 1955 | } | 1959 | } |
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.h b/src/shader_recompiler/frontend/ir/ir_emitter.h index a78628413..13eefa88b 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.h +++ b/src/shader_recompiler/frontend/ir/ir_emitter.h | |||
| @@ -361,6 +361,7 @@ public: | |||
| 361 | const Value& value, TextureInstInfo info); | 361 | const Value& value, TextureInstInfo info); |
| 362 | 362 | ||
| 363 | [[nodiscard]] U1 IsTextureScaled(const U32& index); | 363 | [[nodiscard]] U1 IsTextureScaled(const U32& index); |
| 364 | [[nodiscard]] U1 IsImageScaled(const U32& index); | ||
| 364 | 365 | ||
| 365 | [[nodiscard]] U1 VoteAll(const U1& value); | 366 | [[nodiscard]] U1 VoteAll(const U1& value); |
| 366 | [[nodiscard]] U1 VoteAny(const U1& value); | 367 | [[nodiscard]] U1 VoteAny(const U1& value); |
diff --git a/src/shader_recompiler/frontend/ir/opcodes.inc b/src/shader_recompiler/frontend/ir/opcodes.inc index ec629428a..6929919df 100644 --- a/src/shader_recompiler/frontend/ir/opcodes.inc +++ b/src/shader_recompiler/frontend/ir/opcodes.inc | |||
| @@ -494,6 +494,7 @@ OPCODE(ImageRead, U32x4, Opaq | |||
| 494 | OPCODE(ImageWrite, Void, Opaque, Opaque, U32x4, ) | 494 | OPCODE(ImageWrite, Void, Opaque, Opaque, U32x4, ) |
| 495 | 495 | ||
| 496 | OPCODE(IsTextureScaled, U1, U32, ) | 496 | OPCODE(IsTextureScaled, U1, U32, ) |
| 497 | OPCODE(IsImageScaled, U1, U32, ) | ||
| 497 | 498 | ||
| 498 | // Atomic Image operations | 499 | // Atomic Image operations |
| 499 | 500 | ||