summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader_recompiler/frontend')
-rw-r--r--src/shader_recompiler/frontend/ir/ir_emitter.cpp4
-rw-r--r--src/shader_recompiler/frontend/ir/ir_emitter.h3
-rw-r--r--src/shader_recompiler/frontend/ir/opcodes.inc2
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
1949U1 IREmitter::IsTextureScaled(const U32& index) {
1950 return Inst<U1>(Opcode::IsTextureScaled, index);
1951}
1952
1949U1 IREmitter::VoteAll(const U1& value) { 1953U1 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
493OPCODE(ImageRead, U32x4, Opaque, Opaque, ) 493OPCODE(ImageRead, U32x4, Opaque, Opaque, )
494OPCODE(ImageWrite, Void, Opaque, Opaque, U32x4, ) 494OPCODE(ImageWrite, Void, Opaque, Opaque, U32x4, )
495 495
496OPCODE(IsTextureScaled, U1, U32, )
497
496// Atomic Image operations 498// Atomic Image operations
497 499
498OPCODE(BindlessImageAtomicIAdd32, U32, U32, Opaque, U32, ) 500OPCODE(BindlessImageAtomicIAdd32, U32, U32, Opaque, U32, )