From 17a777fbaedeb4985ce7f284d8b66217f793223a Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 29 Mar 2019 21:13:54 -0300 Subject: [PATCH] Some leftovers from constant folding --- .../Translation/Optimizations/ConstantFolding.cs | 10 +++++++++- .../Shader/Translation/Optimizations/Optimizer.cs | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Ryujinx.Graphics/Shader/Translation/Optimizations/ConstantFolding.cs b/Ryujinx.Graphics/Shader/Translation/Optimizations/ConstantFolding.cs index 16a4011d50..3c12517139 100644 --- a/Ryujinx.Graphics/Shader/Translation/Optimizations/ConstantFolding.cs +++ b/Ryujinx.Graphics/Shader/Translation/Optimizations/ConstantFolding.cs @@ -8,7 +8,7 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations { static class ConstantFolding { - public static void FoldOperation(Operation operation) + public static void Fold(Operation operation) { if (!AreAllSourcesConstant(operation)) { @@ -89,6 +89,10 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations EvaluateBinary(operation, (x, y) => (uint)x < (uint)y); break; + case Instruction.CompareNotEqual: + EvaluateBinary(operation, (x, y) => x != y); + break; + case Instruction.Divide: EvaluateBinary(operation, (x, y) => y != 0 ? x / y : 0); break; @@ -121,6 +125,10 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations EvaluateFPBinary(operation, (x, y) => x <= y); break; + case Instruction.FP | Instruction.CompareNotEqual: + EvaluateFPBinary(operation, (x, y) => x != y); + break; + case Instruction.FP | Instruction.Divide: EvaluateFPBinary(operation, (x, y) => x / y); break; diff --git a/Ryujinx.Graphics/Shader/Translation/Optimizations/Optimizer.cs b/Ryujinx.Graphics/Shader/Translation/Optimizations/Optimizer.cs index b7f4f5342f..0af5d260b1 100644 --- a/Ryujinx.Graphics/Shader/Translation/Optimizations/Optimizer.cs +++ b/Ryujinx.Graphics/Shader/Translation/Optimizations/Optimizer.cs @@ -39,7 +39,7 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations continue; } - ConstantFolding.FoldOperation(operation); + ConstantFolding.Fold(operation); Simplification.Simplify(operation);