Fix because of rebase

This commit is contained in:
Thog 2019-02-13 19:10:29 +01:00
parent 207b996c81
commit d7da8758db
No known key found for this signature in database
GPG key ID: 0CD291558FAFDBC6

View file

@ -306,16 +306,14 @@ namespace Ryujinx.Graphics.Gal.Shader
CoordReg.Index += Index;
Coords[Index].Index += IndexExtraCoord;
CoordReg.Index += IndexExtraCoord;
if (!CoordReg.IsValidRegister)
{
CoordReg.Index = ShaderIrOperGpr.ZRIndex;
}
Coords[Index] = ShaderIrOperGpr.MakeTemporary(Index);
Block.AddNode(new ShaderIrAsg(Coords[Index], CoordReg));
Coords[Index] = CoordReg;
}
int ChMask = OpCode.Read(31, 0xf);
@ -361,6 +359,8 @@ namespace Ryujinx.Graphics.Gal.Shader
ShaderIrInst Inst = GprHandle ? ShaderIrInst.Texb : ShaderIrInst.Texs;
Coords = CoordsRegistersToTempRegisters(Block, Coords);
int RegInc = 0;
for (int Ch = 0; Ch < 4; Ch++)
@ -694,6 +694,7 @@ namespace Ryujinx.Graphics.Gal.Shader
}
ShaderIrNode OperC = OpCode.Imm13_36();
Coords = CoordsRegistersToTempRegisters(Block, Coords);
for (int Ch = 0; Ch < 4; Ch++)
{
@ -820,28 +821,7 @@ namespace Ryujinx.Graphics.Gal.Shader
OperBIndex++;
}
for (int Ch = 0; Ch < 4; Ch++)
{
// Avoid usuless variable creation
if (!IsChannelUsed(ChMask, Ch))
{
continue;
}
ShaderIrOperGpr Dst = new ShaderIrOperGpr(TempRegStart + Ch);
ShaderIrMetaTex Meta = new ShaderIrMetaTex(Ch, TextureType, TextureInstructionSuffix, Coords)
{
Component = Component,
Offset = Offset,
DepthCompare = DepthCompare
};
ShaderIrOp Op = new ShaderIrOp(ShaderIrInst.Tld4, OperA, OperB, OperC, Meta);
Block.AddNode(OpCode.PredNode(new ShaderIrAsg(Dst, Op)));
}
Coords = CoordsRegistersToTempRegisters(Block, Coords);
int RegInc = 0;
@ -852,18 +832,25 @@ namespace Ryujinx.Graphics.Gal.Shader
continue;
}
ShaderIrOperGpr Src = new ShaderIrOperGpr(TempRegStart + Ch);
ShaderIrOperGpr Dst = OpCode.Gpr0();
Dst.Index += RegInc++;
if (Dst.Index >= ShaderIrOperGpr.ZRIndex)
if (!Dst.IsValidRegister || Dst.IsConst)
{
continue;
}
Block.AddNode(OpCode.PredNode(new ShaderIrAsg(Dst, Src)));
ShaderIrMetaTex Meta = new ShaderIrMetaTex(Ch, TextureType, TextureInstructionSuffix, Coords)
{
Component = Component,
Offset = Offset,
DepthCompare = DepthCompare
};
ShaderIrOp Op = new ShaderIrOp(ShaderIrInst.Tld4, OperA, OperB, OperC, Meta);
Block.AddNode(OpCode.PredNode(new ShaderIrAsg(Dst, Op)));
}
}