aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs')
-rw-r--r--Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs
index 33f58231..24a61c0c 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));
}
}