Jelajahi Sumber

Ignore ZR target texture color registers on shader

gdkchan 8 tahun lalu
induk
melakukan
5f0dd965bf
1 mengubah file dengan 8 tambahan dan 3 penghapusan
  1. 8 3
      Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs

+ 8 - 3
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));
             }
         }