Sfoglia il codice sorgente

Fix mistake on astc conversion, make some static methods that shouldn't be public private, remove old commmented out code

gdkchan 7 anni fa
parent
commit
4731c7545d

+ 3 - 3
ChocolArm64/Instruction/AInstEmitAlu.cs

@@ -218,7 +218,7 @@ namespace ChocolArm64.Instruction
             EmitSubsCCheck(Context);
             EmitSubsVCheck(Context);
             EmitDataStoreS(Context);
-        }      
+        }
 
         public static void Orn(AILEmitterCtx Context)
         {
@@ -244,7 +244,7 @@ namespace ChocolArm64.Instruction
             nameof(ASoftFallback.ReverseBytes32_32),
             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;
 
@@ -320,7 +320,7 @@ namespace ChocolArm64.Instruction
                 EmitDataLoadRn(Context);
 
                 Context.EmitLdc_I(IntMin);
-                
+
                 Context.Emit(OpCodes.Ceq);
 
                 EmitDataLoadRm(Context);

+ 2 - 2
ChocolArm64/Instruction/AInstEmitMemory.cs

@@ -27,7 +27,7 @@ namespace ChocolArm64.Instruction
         public static void Ldr(AILEmitterCtx Context)  => EmitLdr(Context, false);
         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;
 
@@ -131,7 +131,7 @@ namespace ChocolArm64.Instruction
             EmitReadAndStore(Op.Rt2);
 
             EmitWBackIfNeeded(Context);
-        }        
+        }
 
         public static void Str(AILEmitterCtx Context)
         {

+ 1 - 1
ChocolArm64/Instruction/AInstEmitSimdLogical.cs

@@ -50,7 +50,7 @@ namespace ChocolArm64.Instruction
             EmitBitBif(Context, false);
         }
 
-        public static void EmitBitBif(AILEmitterCtx Context, bool NotRm)
+        private static void EmitBitBif(AILEmitterCtx Context, bool NotRm)
         {
             AOpCodeSimdReg Op = (AOpCodeSimdReg)Context.CurrOp;
 

+ 11 - 4
Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs

@@ -40,7 +40,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL
             {
                 if (Texture.Format >= GalTextureFormat.Astc2D4x4)
                 {
-                    ConvertAstcTextureToRgba(Texture);
+                    Texture = ConvertAstcTextureToRgba(Texture);
                 }
 
                 const PixelInternalFormat InternalFmt = PixelInternalFormat.Rgba;
@@ -70,14 +70,21 @@ namespace Ryujinx.Graphics.Gal.OpenGL
             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,
-                GetAstcBlockWidth(Texture.Format),
-                GetAstcBlockHeight(Texture.Format), 1,
+                TextureBlockWidth,
+                TextureBlockHeight, 1,
                 Texture.Width,
                 Texture.Height, 1);
+
+            Texture.Format = GalTextureFormat.A8B8G8R8;
+
+            return Texture;
         }
 
         private int GetAstcBlockWidth(GalTextureFormat Format)

+ 1 - 1
Ryujinx.Graphics/Gal/Shader/ShaderDecodeAlu.cs

@@ -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
             //be used with Mufu, here it just moves the value and ignores the operation.

+ 0 - 5
Ryujinx.Graphics/Gal/Shader/ShaderDecodeMem.cs

@@ -216,11 +216,6 @@ namespace Ryujinx.Graphics.Gal.Shader
                 }
 
                 Block.AddNode(GetPredNode(new ShaderIrAsg(Dst, Src), OpCode));
-
-                /*if (IsScalar)
-                {
-                    break;
-                }*/
             }
         }