diff options
| author | 2021-03-24 23:41:55 +0100 | |
|---|---|---|
| committer | 2021-07-22 21:51:24 -0400 | |
| commit | c7c518e280d1ac04adb08d45145690fd06ac7b18 (patch) | |
| tree | 1bce4c12238600828bef6bdf0c92da6f69c054b1 /src/shader_recompiler/frontend/ir/ir_emitter.cpp | |
| parent | shader: Implement SHFL (diff) | |
| download | yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.tar.gz yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.tar.xz yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.zip | |
shader: Implement TLD4 and TLD4_B
Diffstat (limited to 'src/shader_recompiler/frontend/ir/ir_emitter.cpp')
| -rw-r--r-- | src/shader_recompiler/frontend/ir/ir_emitter.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/ir_emitter.cpp b/src/shader_recompiler/frontend/ir/ir_emitter.cpp index 418b7f5ac..b365a8a6e 100644 --- a/src/shader_recompiler/frontend/ir/ir_emitter.cpp +++ b/src/shader_recompiler/frontend/ir/ir_emitter.cpp | |||
| @@ -1474,6 +1474,19 @@ F32 IREmitter::ImageSampleDrefExplicitLod(const Value& handle, const Value& coor | |||
| 1474 | return Inst<F32>(op, Flags{info}, handle, coords, dref, lod_lc, offset); | 1474 | return Inst<F32>(op, Flags{info}, handle, coords, dref, lod_lc, offset); |
| 1475 | } | 1475 | } |
| 1476 | 1476 | ||
| 1477 | Value IREmitter::ImageGather(const Value& handle, const Value& coords, const Value& offset, | ||
| 1478 | const Value& offset2, TextureInstInfo info) { | ||
| 1479 | const Opcode op{handle.IsImmediate() ? Opcode::BoundImageGather : Opcode::BindlessImageGather}; | ||
| 1480 | return Inst(op, Flags{info}, handle, coords, offset, offset2); | ||
| 1481 | } | ||
| 1482 | |||
| 1483 | Value IREmitter::ImageGatherDref(const Value& handle, const Value& coords, const Value& offset, | ||
| 1484 | const Value& offset2, const F32& dref, TextureInstInfo info) { | ||
| 1485 | const Opcode op{handle.IsImmediate() ? Opcode::BoundImageGatherDref | ||
| 1486 | : Opcode::BindlessImageGatherDref}; | ||
| 1487 | return Inst(op, Flags{info}, handle, coords, offset, offset2, dref); | ||
| 1488 | } | ||
| 1489 | |||
| 1477 | U1 IREmitter::VoteAll(const U1& value) { | 1490 | U1 IREmitter::VoteAll(const U1& value) { |
| 1478 | return Inst<U1>(Opcode::VoteAll, value); | 1491 | return Inst<U1>(Opcode::VoteAll, value); |
| 1479 | } | 1492 | } |