From 5f0dd965bf18ec00856498c9b933a6b7c906994a Mon Sep 17 00:00:00 2001 From: gdkchan Date: Mon, 30 Apr 2018 14:32:54 -0300 Subject: [PATCH] Ignore ZR target texture color registers on shader --- Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs index 33f582316..24a61c0c2 100644 --- a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs +++ b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs @@ -68,9 +68,9 @@ namespace Ryujinx.Graphics.Gal.Shader private static void EmitTex(ShaderIrBlock Block, long OpCode, ShaderIrInst Inst) { //TODO: Support other formats. - ShaderIrNode OperA = GetOperGpr8 (OpCode); - ShaderIrNode OperB = GetOperGpr20 (OpCode); - ShaderIrNode OperC = GetOperImm13_36(OpCode); + ShaderIrNode OperA = GetOperGpr8 (OpCode); + ShaderIrNode OperB = GetOperGpr20 (OpCode); + ShaderIrNode OperC = GetOperImm13_36(OpCode); for (int Ch = 0; Ch < 4; Ch++) { @@ -95,6 +95,11 @@ namespace Ryujinx.Graphics.Gal.Shader Dst.Index += Ch & 1; + if (Dst.Index >= ShaderIrOperGpr.ZRIndex) + { + continue; + } + Block.AddNode(GetPredNode(new ShaderIrAsg(Dst, Src), OpCode)); } }