From 9db5b4a63c94d93699e1de94f7f1bec0401000da Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 13 Apr 2019 20:03:52 -0300 Subject: [PATCH] Add missing condition for do-while on goto elimination --- Ryujinx.Graphics/Shader/StructuredIr/GotoElimination.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Ryujinx.Graphics/Shader/StructuredIr/GotoElimination.cs b/Ryujinx.Graphics/Shader/StructuredIr/GotoElimination.cs index c2fd76055e..dffc3142f1 100644 --- a/Ryujinx.Graphics/Shader/StructuredIr/GotoElimination.cs +++ b/Ryujinx.Graphics/Shader/StructuredIr/GotoElimination.cs @@ -316,6 +316,12 @@ namespace Ryujinx.Graphics.Shader.StructuredIr EncloseSingleInst(stmt, Instruction.LoopContinue); } + //Modify the do-while condition to allow it to continue. + if (!ContainsCondComb(block.Condition, Instruction.LogicalOr, stmt.Condition)) + { + block.OrCondition(stmt.Condition); + } + return block; }