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 | 2 | ||||
| -rw-r--r-- | src/shader_recompiler/frontend/ir/opcodes.inc | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.cpp b/src/shader_recompiler/frontend/ir/ir_emitter.cpp index 2fd90303f..b5f61956a 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.cpp +++ b/src/shader_recompiler/frontend/ir/ir_emitter.cpp | |||
| @@ -355,6 +355,10 @@ U32 IREmitter::LocalInvocationIdZ() { | |||
| 355 | return U32{CompositeExtract(Inst(Opcode::LocalInvocationId), 2)}; | 355 | return U32{CompositeExtract(Inst(Opcode::LocalInvocationId), 2)}; |
| 356 | } | 356 | } |
| 357 | 357 | ||
| 358 | U32 IREmitter::LaneId() { | ||
| 359 | return Inst<U32>(Opcode::LaneId); | ||
| 360 | } | ||
| 361 | |||
| 358 | U32 IREmitter::LoadGlobalU8(const U64& address) { | 362 | U32 IREmitter::LoadGlobalU8(const U64& address) { |
| 359 | return Inst<U32>(Opcode::LoadGlobalU8, address); | 363 | return Inst<U32>(Opcode::LoadGlobalU8, address); |
| 360 | } | 364 | } |
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.h b/src/shader_recompiler/frontend/ir/ir_emitter.h index 5bebf66e3..e034d672f 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.h +++ b/src/shader_recompiler/frontend/ir/ir_emitter.h | |||
| @@ -97,6 +97,8 @@ public: | |||
| 97 | [[nodiscard]] U32 LocalInvocationIdY(); | 97 | [[nodiscard]] U32 LocalInvocationIdY(); |
| 98 | [[nodiscard]] U32 LocalInvocationIdZ(); | 98 | [[nodiscard]] U32 LocalInvocationIdZ(); |
| 99 | 99 | ||
| 100 | [[nodiscard]] U32 LaneId(); | ||
| 101 | |||
| 100 | [[nodiscard]] U32 LoadGlobalU8(const U64& address); | 102 | [[nodiscard]] U32 LoadGlobalU8(const U64& address); |
| 101 | [[nodiscard]] U32 LoadGlobalS8(const U64& address); | 103 | [[nodiscard]] U32 LoadGlobalS8(const U64& address); |
| 102 | [[nodiscard]] U32 LoadGlobalU16(const U64& address); | 104 | [[nodiscard]] U32 LoadGlobalU16(const U64& address); |
diff --git a/src/shader_recompiler/frontend/ir/opcodes.inc b/src/shader_recompiler/frontend/ir/opcodes.inc index d9e0d5471..74e956930 100644 --- a/src/shader_recompiler/frontend/ir/opcodes.inc +++ b/src/shader_recompiler/frontend/ir/opcodes.inc | |||
| @@ -63,6 +63,7 @@ OPCODE(SetTRFlag, Void, U1, | |||
| 63 | OPCODE(SetMXFlag, Void, U1, ) | 63 | OPCODE(SetMXFlag, Void, U1, ) |
| 64 | OPCODE(WorkgroupId, U32x3, ) | 64 | OPCODE(WorkgroupId, U32x3, ) |
| 65 | OPCODE(LocalInvocationId, U32x3, ) | 65 | OPCODE(LocalInvocationId, U32x3, ) |
| 66 | OPCODE(LaneId, U32, ) | ||
| 66 | 67 | ||
| 67 | // Undefined | 68 | // Undefined |
| 68 | OPCODE(UndefU1, U1, ) | 69 | OPCODE(UndefU1, U1, ) |