Merge pull request #1027 from bunnei/fix-kil

gl_shader_decompiler: Fix GLSL compiler error with KIL instruction.
This commit is contained in:
bunnei 2018-08-12 00:25:44 -04:00 committed by GitHub
commit 3f81c38c6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 0 deletions

View File

@ -1667,7 +1667,15 @@ private:
} }
case OpCode::Id::KIL: { case OpCode::Id::KIL: {
ASSERT(instr.flow.cond == Tegra::Shader::FlowCondition::Always); ASSERT(instr.flow.cond == Tegra::Shader::FlowCondition::Always);
// Enclose "discard" in a conditional, so that GLSL compilation does not complain
// about unexecuted instructions that may follow this.
shader.AddLine("if (true) {");
++shader.scope;
shader.AddLine("discard;"); shader.AddLine("discard;");
--shader.scope;
shader.AddLine("}");
break; break;
} }
case OpCode::Id::BRA: { case OpCode::Id::BRA: {