summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv/emit_spirv.cpp
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-05-18 02:04:22 -0300
committerGravatar ameerj2021-07-22 21:51:32 -0400
commit9bb3e008c9f4bbdd35c095b506c3a3312d17e383 (patch)
tree320cc594970b6ef658d8bed88ceabded0f84caea /src/shader_recompiler/backend/spirv/emit_spirv.cpp
parentglasm: Implement InstanceId and VertexId (diff)
downloadyuzu-9bb3e008c9f4bbdd35c095b506c3a3312d17e383.tar.gz
yuzu-9bb3e008c9f4bbdd35c095b506c3a3312d17e383.tar.xz
yuzu-9bb3e008c9f4bbdd35c095b506c3a3312d17e383.zip
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_spirv.cpp')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.cpp b/src/shader_recompiler/backend/spirv/emit_spirv.cpp
index 9ed2af991..3e20ac3b9 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv.cpp
@@ -469,7 +469,15 @@ Id EmitIdentity(EmitContext& ctx, const IR::Value& value) {
469 return id; 469 return id;
470} 470}
471 471
472void EmitDummyReference(EmitContext&) {} 472Id EmitConditionRef(EmitContext& ctx, const IR::Value& value) {
473 const Id id{ctx.Def(value)};
474 if (!Sirit::ValidId(id)) {
475 throw NotImplementedException("Forward identity declaration");
476 }
477 return id;
478}
479
480void EmitReference(EmitContext&) {}
473 481
474void EmitPhiMove(EmitContext&) { 482void EmitPhiMove(EmitContext&) {
475 throw LogicError("Unreachable instruction"); 483 throw LogicError("Unreachable instruction");