diff options
Diffstat (limited to 'src/shader_recompiler/frontend/ir')
| -rw-r--r-- | src/shader_recompiler/frontend/ir/ir_emitter.cpp | 4 | ||||
| -rw-r--r-- | src/shader_recompiler/frontend/ir/ir_emitter.h | 3 | ||||
| -rw-r--r-- | src/shader_recompiler/frontend/ir/opcodes.inc | 2 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.cpp b/src/shader_recompiler/frontend/ir/ir_emitter.cpp index 3dfba8e71..3ccd91c10 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.cpp +++ b/src/shader_recompiler/frontend/ir/ir_emitter.cpp | |||
| @@ -1946,6 +1946,10 @@ Value IREmitter::ImageAtomicExchange(const Value& handle, const Value& coords, c | |||
| 1946 | return Inst(op, Flags{info}, handle, coords, value); | 1946 | return Inst(op, Flags{info}, handle, coords, value); |
| 1947 | } | 1947 | } |
| 1948 | 1948 | ||
| 1949 | U1 IREmitter::IsTextureScaled(const U32& index) { | ||
| 1950 | return Inst<U1>(Opcode::IsTextureScaled, index); | ||
| 1951 | } | ||
| 1952 | |||
| 1949 | U1 IREmitter::VoteAll(const U1& value) { | 1953 | U1 IREmitter::VoteAll(const U1& value) { |
| 1950 | return Inst<U1>(Opcode::VoteAll, value); | 1954 | return Inst<U1>(Opcode::VoteAll, value); |
| 1951 | } | 1955 | } |
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.h b/src/shader_recompiler/frontend/ir/ir_emitter.h index 1959be42e..a78628413 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.h +++ b/src/shader_recompiler/frontend/ir/ir_emitter.h | |||
| @@ -359,6 +359,9 @@ public: | |||
| 359 | TextureInstInfo info); | 359 | TextureInstInfo info); |
| 360 | [[nodiscard]] Value ImageAtomicExchange(const Value& handle, const Value& coords, | 360 | [[nodiscard]] Value ImageAtomicExchange(const Value& handle, const Value& coords, |
| 361 | const Value& value, TextureInstInfo info); | 361 | const Value& value, TextureInstInfo info); |
| 362 | |||
| 363 | [[nodiscard]] U1 IsTextureScaled(const U32& index); | ||
| 364 | |||
| 362 | [[nodiscard]] U1 VoteAll(const U1& value); | 365 | [[nodiscard]] U1 VoteAll(const U1& value); |
| 363 | [[nodiscard]] U1 VoteAny(const U1& value); | 366 | [[nodiscard]] U1 VoteAny(const U1& value); |
| 364 | [[nodiscard]] U1 VoteEqual(const U1& value); | 367 | [[nodiscard]] U1 VoteEqual(const U1& value); |
diff --git a/src/shader_recompiler/frontend/ir/opcodes.inc b/src/shader_recompiler/frontend/ir/opcodes.inc index c05e6d312..ec629428a 100644 --- a/src/shader_recompiler/frontend/ir/opcodes.inc +++ b/src/shader_recompiler/frontend/ir/opcodes.inc | |||
| @@ -493,6 +493,8 @@ OPCODE(ImageGradient, F32x4, Opaq | |||
| 493 | OPCODE(ImageRead, U32x4, Opaque, Opaque, ) | 493 | OPCODE(ImageRead, U32x4, Opaque, Opaque, ) |
| 494 | OPCODE(ImageWrite, Void, Opaque, Opaque, U32x4, ) | 494 | OPCODE(ImageWrite, Void, Opaque, Opaque, U32x4, ) |
| 495 | 495 | ||
| 496 | OPCODE(IsTextureScaled, U1, U32, ) | ||
| 497 | |||
| 496 | // Atomic Image operations | 498 | // Atomic Image operations |
| 497 | 499 | ||
| 498 | OPCODE(BindlessImageAtomicIAdd32, U32, U32, Opaque, U32, ) | 500 | OPCODE(BindlessImageAtomicIAdd32, U32, U32, Opaque, U32, ) |