Support AOFFI with TLD4 and TLD4S
This commit is contained in:
parent
0879ec824e
commit
6dc88c85c9
2 changed files with 10 additions and 5 deletions
|
@ -1393,11 +1393,11 @@ namespace Ryujinx.Graphics.Gal.Shader
|
|||
|
||||
}
|
||||
|
||||
private string GetTextureOffset(ShaderIrMetaTex Meta, string Oper)
|
||||
private string GetTextureOffset(ShaderIrMetaTex Meta, string Oper, int Shift = 4, int Mask = 0xF)
|
||||
{
|
||||
string GetOffset(string Operation, int index)
|
||||
string GetOffset(string Operation, int Index)
|
||||
{
|
||||
return "(" + Operation + " >> " + index * 4 + ") & 0xF";
|
||||
return $"({Operation} >> {Index * Shift}) & 0x{Mask:x}";
|
||||
}
|
||||
|
||||
int Coords = ImageUtils.GetCoordsCountTextureTarget(Meta.TextureTarget);
|
||||
|
@ -1435,8 +1435,13 @@ namespace Ryujinx.Graphics.Gal.Shader
|
|||
Comp = GetOperExpr(Op, Meta.DepthCompare);
|
||||
}
|
||||
|
||||
// TODO: Support AOFFI
|
||||
if ((Suffix & TextureInstructionSuffix.AOffI) != 0)
|
||||
{
|
||||
string Offset = GetTextureOffset(Meta, "floatBitsToInt((" + GetOperExpr(Op, Meta.Offset) + "))", 8, 0x3F);
|
||||
return "textureGatherOffset(" + Sampler + ", " + Coords + ", " + Comp + ", " + Offset + ")" + ChString;
|
||||
}
|
||||
// TODO: Support PTP
|
||||
else if ((Suffix & TextureInstructionSuffix.PTP) != 0)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
|
|
@ -475,7 +475,7 @@ namespace Ryujinx.Graphics.Gal.Shader
|
|||
{
|
||||
TextureInstructionSuffix Suffix;
|
||||
|
||||
int RawSuffix = OpCode.Read(0x34, 0x38);
|
||||
int RawSuffix = OpCode.Read(0x34, 0xc);
|
||||
|
||||
switch (RawSuffix)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue