summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/frontend/ir/ir_emitter.cpp
diff options
context:
space:
mode:
authorFernandoS27 <fsahmkow27@gmail.com>2021-03-24 23:41:55 +0100
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:24 +0200
commitc7c518e280d1ac04adb08d45145690fd06ac7b18 (patch)
tree1bce4c12238600828bef6bdf0c92da6f69c054b1 /src/shader_recompiler/frontend/ir/ir_emitter.cpp
parentshader: Implement SHFL (diff)
downloadyuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.tar
yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.tar.gz
yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.tar.bz2
yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.tar.lz
yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.tar.xz
yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.tar.zst
yuzu-c7c518e280d1ac04adb08d45145690fd06ac7b18.zip
Diffstat (limited to 'src/shader_recompiler/frontend/ir/ir_emitter.cpp')
-rw-r--r--src/shader_recompiler/frontend/ir/ir_emitter.cpp13
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
return Inst<F32>(op, Flags{info}, handle, coords, dref, lod_lc, offset);
}
+Value IREmitter::ImageGather(const Value& handle, const Value& coords, const Value& offset,
+ const Value& offset2, TextureInstInfo info) {
+ const Opcode op{handle.IsImmediate() ? Opcode::BoundImageGather : Opcode::BindlessImageGather};
+ return Inst(op, Flags{info}, handle, coords, offset, offset2);
+}
+
+Value IREmitter::ImageGatherDref(const Value& handle, const Value& coords, const Value& offset,
+ const Value& offset2, const F32& dref, TextureInstInfo info) {
+ const Opcode op{handle.IsImmediate() ? Opcode::BoundImageGatherDref
+ : Opcode::BindlessImageGatherDref};
+ return Inst(op, Flags{info}, handle, coords, offset, offset2, dref);
+}
+
U1 IREmitter::VoteAll(const U1& value) {
return Inst<U1>(Opcode::VoteAll, value);
}