Fix because of rebase
This commit is contained in:
parent
207b996c81
commit
d7da8758db
1 changed files with 17 additions and 30 deletions
|
@ -306,16 +306,14 @@ namespace Ryujinx.Graphics.Gal.Shader
|
||||||
|
|
||||||
CoordReg.Index += Index;
|
CoordReg.Index += Index;
|
||||||
|
|
||||||
Coords[Index].Index += IndexExtraCoord;
|
CoordReg.Index += IndexExtraCoord;
|
||||||
|
|
||||||
if (!CoordReg.IsValidRegister)
|
if (!CoordReg.IsValidRegister)
|
||||||
{
|
{
|
||||||
CoordReg.Index = ShaderIrOperGpr.ZRIndex;
|
CoordReg.Index = ShaderIrOperGpr.ZRIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
Coords[Index] = ShaderIrOperGpr.MakeTemporary(Index);
|
Coords[Index] = CoordReg;
|
||||||
|
|
||||||
Block.AddNode(new ShaderIrAsg(Coords[Index], CoordReg));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ChMask = OpCode.Read(31, 0xf);
|
int ChMask = OpCode.Read(31, 0xf);
|
||||||
|
@ -361,6 +359,8 @@ namespace Ryujinx.Graphics.Gal.Shader
|
||||||
|
|
||||||
ShaderIrInst Inst = GprHandle ? ShaderIrInst.Texb : ShaderIrInst.Texs;
|
ShaderIrInst Inst = GprHandle ? ShaderIrInst.Texb : ShaderIrInst.Texs;
|
||||||
|
|
||||||
|
Coords = CoordsRegistersToTempRegisters(Block, Coords);
|
||||||
|
|
||||||
int RegInc = 0;
|
int RegInc = 0;
|
||||||
|
|
||||||
for (int Ch = 0; Ch < 4; Ch++)
|
for (int Ch = 0; Ch < 4; Ch++)
|
||||||
|
@ -694,6 +694,7 @@ namespace Ryujinx.Graphics.Gal.Shader
|
||||||
}
|
}
|
||||||
|
|
||||||
ShaderIrNode OperC = OpCode.Imm13_36();
|
ShaderIrNode OperC = OpCode.Imm13_36();
|
||||||
|
Coords = CoordsRegistersToTempRegisters(Block, Coords);
|
||||||
|
|
||||||
for (int Ch = 0; Ch < 4; Ch++)
|
for (int Ch = 0; Ch < 4; Ch++)
|
||||||
{
|
{
|
||||||
|
@ -820,28 +821,7 @@ namespace Ryujinx.Graphics.Gal.Shader
|
||||||
OperBIndex++;
|
OperBIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Coords = CoordsRegistersToTempRegisters(Block, Coords);
|
||||||
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)));
|
|
||||||
}
|
|
||||||
|
|
||||||
int RegInc = 0;
|
int RegInc = 0;
|
||||||
|
|
||||||
|
@ -852,18 +832,25 @@ namespace Ryujinx.Graphics.Gal.Shader
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
ShaderIrOperGpr Src = new ShaderIrOperGpr(TempRegStart + Ch);
|
|
||||||
|
|
||||||
ShaderIrOperGpr Dst = OpCode.Gpr0();
|
ShaderIrOperGpr Dst = OpCode.Gpr0();
|
||||||
|
|
||||||
Dst.Index += RegInc++;
|
Dst.Index += RegInc++;
|
||||||
|
|
||||||
if (Dst.Index >= ShaderIrOperGpr.ZRIndex)
|
if (!Dst.IsValidRegister || Dst.IsConst)
|
||||||
{
|
{
|
||||||
continue;
|
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)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue