diff options
| author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-05-18 02:04:22 -0300 |
|---|---|---|
| committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-22 21:51:32 -0400 |
| commit | 5c6dc51c693ef09ae5fddce7bb0198c0e4aeb3ef (patch) | |
| tree | 320cc594970b6ef658d8bed88ceabded0f84caea /src/shader_recompiler/backend/spirv/emit_spirv.cpp | |
| parent | 43bca1421734c71e1c47d493ac14c9a1a05ab379 (diff) | |
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.cpp | 10 |
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 9ed2af9913..3e20ac3b90 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) { return id; } -void EmitDummyReference(EmitContext&) {} +Id EmitConditionRef(EmitContext& ctx, const IR::Value& value) { + const Id id{ctx.Def(value)}; + if (!Sirit::ValidId(id)) { + throw NotImplementedException("Forward identity declaration"); + } + return id; +} + +void EmitReference(EmitContext&) {} void EmitPhiMove(EmitContext&) { throw LogicError("Unreachable instruction"); |
