forked from Mirror/Ryujinx
Fix mistake on astc conversion, make some static methods that shouldn't be public private, remove old commmented out code
This commit is contained in:
parent
7a6ce48184
commit
4731c7545d
6 changed files with 18 additions and 16 deletions
|
@ -244,7 +244,7 @@ namespace ChocolArm64.Instruction
|
||||||
nameof(ASoftFallback.ReverseBytes32_32),
|
nameof(ASoftFallback.ReverseBytes32_32),
|
||||||
nameof(ASoftFallback.ReverseBytes32_64));
|
nameof(ASoftFallback.ReverseBytes32_64));
|
||||||
|
|
||||||
public static void EmitFallback32_64(AILEmitterCtx Context, string Name32, string Name64)
|
private static void EmitFallback32_64(AILEmitterCtx Context, string Name32, string Name64)
|
||||||
{
|
{
|
||||||
AOpCodeAlu Op = (AOpCodeAlu)Context.CurrOp;
|
AOpCodeAlu Op = (AOpCodeAlu)Context.CurrOp;
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ namespace ChocolArm64.Instruction
|
||||||
public static void Ldr(AILEmitterCtx Context) => EmitLdr(Context, false);
|
public static void Ldr(AILEmitterCtx Context) => EmitLdr(Context, false);
|
||||||
public static void Ldrs(AILEmitterCtx Context) => EmitLdr(Context, true);
|
public static void Ldrs(AILEmitterCtx Context) => EmitLdr(Context, true);
|
||||||
|
|
||||||
public static void EmitLdr(AILEmitterCtx Context, bool Signed)
|
private static void EmitLdr(AILEmitterCtx Context, bool Signed)
|
||||||
{
|
{
|
||||||
AOpCodeMem Op = (AOpCodeMem)Context.CurrOp;
|
AOpCodeMem Op = (AOpCodeMem)Context.CurrOp;
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace ChocolArm64.Instruction
|
||||||
EmitBitBif(Context, false);
|
EmitBitBif(Context, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EmitBitBif(AILEmitterCtx Context, bool NotRm)
|
private static void EmitBitBif(AILEmitterCtx Context, bool NotRm)
|
||||||
{
|
{
|
||||||
AOpCodeSimdReg Op = (AOpCodeSimdReg)Context.CurrOp;
|
AOpCodeSimdReg Op = (AOpCodeSimdReg)Context.CurrOp;
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL
|
||||||
{
|
{
|
||||||
if (Texture.Format >= GalTextureFormat.Astc2D4x4)
|
if (Texture.Format >= GalTextureFormat.Astc2D4x4)
|
||||||
{
|
{
|
||||||
ConvertAstcTextureToRgba(Texture);
|
Texture = ConvertAstcTextureToRgba(Texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
const PixelInternalFormat InternalFmt = PixelInternalFormat.Rgba;
|
const PixelInternalFormat InternalFmt = PixelInternalFormat.Rgba;
|
||||||
|
@ -70,14 +70,21 @@ namespace Ryujinx.Graphics.Gal.OpenGL
|
||||||
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureSwizzleA, SwizzleA);
|
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureSwizzleA, SwizzleA);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConvertAstcTextureToRgba(GalTexture Texture)
|
private GalTexture ConvertAstcTextureToRgba(GalTexture Texture)
|
||||||
{
|
{
|
||||||
|
int TextureBlockWidth = GetAstcBlockWidth(Texture.Format);
|
||||||
|
int TextureBlockHeight = GetAstcBlockWidth(Texture.Format);
|
||||||
|
|
||||||
Texture.Data = ASTCDecoder.DecodeToRGBA8888(
|
Texture.Data = ASTCDecoder.DecodeToRGBA8888(
|
||||||
Texture.Data,
|
Texture.Data,
|
||||||
GetAstcBlockWidth(Texture.Format),
|
TextureBlockWidth,
|
||||||
GetAstcBlockHeight(Texture.Format), 1,
|
TextureBlockHeight, 1,
|
||||||
Texture.Width,
|
Texture.Width,
|
||||||
Texture.Height, 1);
|
Texture.Height, 1);
|
||||||
|
|
||||||
|
Texture.Format = GalTextureFormat.A8B8G8R8;
|
||||||
|
|
||||||
|
return Texture;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int GetAstcBlockWidth(GalTextureFormat Format)
|
private int GetAstcBlockWidth(GalTextureFormat Format)
|
||||||
|
|
|
@ -620,7 +620,7 @@ namespace Ryujinx.Graphics.Gal.Shader
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void EmitRro(ShaderIrBlock Block, long OpCode, ShaderOper Oper)
|
private static void EmitRro(ShaderIrBlock Block, long OpCode, ShaderOper Oper)
|
||||||
{
|
{
|
||||||
//Note: this is a range reduction instruction and is supposed to
|
//Note: this is a range reduction instruction and is supposed to
|
||||||
//be used with Mufu, here it just moves the value and ignores the operation.
|
//be used with Mufu, here it just moves the value and ignores the operation.
|
||||||
|
|
|
@ -216,11 +216,6 @@ namespace Ryujinx.Graphics.Gal.Shader
|
||||||
}
|
}
|
||||||
|
|
||||||
Block.AddNode(GetPredNode(new ShaderIrAsg(Dst, Src), OpCode));
|
Block.AddNode(GetPredNode(new ShaderIrAsg(Dst, Src), OpCode));
|
||||||
|
|
||||||
/*if (IsScalar)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue