aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLordmau5 <mail@lordmau5.com>2018-06-13 01:28:49 +0200
committerLordmau5 <mail@lordmau5.com>2018-06-13 01:28:49 +0200
commite6f6c6ad57c58081636164232d112c9642d5f98c (patch)
treef1a21d7856d55168aba96efdb27ced6247f1dfb2
parentc636c74dd2a54a9c0ece6cd31b03512f8c41fc43 (diff)
parent98e6a34608cc31f1f40e964a4a8cc80606877eca (diff)
Merge branch 'master' into ICommonStateGetter
-rw-r--r--ChocolArm64/AOpCodeTable.cs1
-rw-r--r--ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs8
-rw-r--r--Ryujinx.Graphics/Gal/GalTextureFormat.cs1
-rw-r--r--Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs1
-rw-r--r--Ryujinx.Graphics/Gal/Shader/GlslDecl.cs3
-rw-r--r--Ryujinx.Graphics/Gal/Shader/GlslDecompiler.cs3
-rw-r--r--Ryujinx.Graphics/Gal/Shader/ShaderDecodeHelper.cs2
-rw-r--r--Ryujinx.HLE/Gpu/TextureHelper.cs1
-rw-r--r--Ryujinx.HLE/Gpu/TextureReader.cs1
-rw-r--r--Ryujinx.HLE/Hid/Hid.cs6
10 files changed, 20 insertions, 7 deletions
diff --git a/ChocolArm64/AOpCodeTable.cs b/ChocolArm64/AOpCodeTable.cs
index 3500fba0..5bddc3b9 100644
--- a/ChocolArm64/AOpCodeTable.cs
+++ b/ChocolArm64/AOpCodeTable.cs
@@ -206,6 +206,7 @@ namespace ChocolArm64
SetA64("0>101110000xxxxx0<xxx0xxxxxxxxxx", AInstEmit.Ext_V, typeof(AOpCodeSimdExt));
SetA64("011111101x1xxxxx110101xxxxxxxxxx", AInstEmit.Fabd_S, typeof(AOpCodeSimdReg));
SetA64("000111100x100000110000xxxxxxxxxx", AInstEmit.Fabs_S, typeof(AOpCodeSimd));
+ SetA64("0>0011101<100000111110xxxxxxxxxx", AInstEmit.Fabs_V, typeof(AOpCodeSimd));
SetA64("000111100x1xxxxx001010xxxxxxxxxx", AInstEmit.Fadd_S, typeof(AOpCodeSimdReg));
SetA64("0>0011100<1xxxxx110101xxxxxxxxxx", AInstEmit.Fadd_V, typeof(AOpCodeSimdReg));
SetA64("0>1011100<1xxxxx110101xxxxxxxxxx", AInstEmit.Faddp_V, typeof(AOpCodeSimdReg));
diff --git a/ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs b/ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs
index 0dfe0bd3..5aea6b04 100644
--- a/ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs
+++ b/ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs
@@ -309,6 +309,14 @@ namespace ChocolArm64.Instruction
});
}
+ public static void Fabs_V(AILEmitterCtx Context)
+ {
+ EmitVectorUnaryOpF(Context, () =>
+ {
+ EmitUnaryMathCall(Context, nameof(Math.Abs));
+ });
+ }
+
public static void Fadd_S(AILEmitterCtx Context)
{
if (AOptimizations.UseSse2)
diff --git a/Ryujinx.Graphics/Gal/GalTextureFormat.cs b/Ryujinx.Graphics/Gal/GalTextureFormat.cs
index 3bac2f80..7d19dc26 100644
--- a/Ryujinx.Graphics/Gal/GalTextureFormat.cs
+++ b/Ryujinx.Graphics/Gal/GalTextureFormat.cs
@@ -10,6 +10,7 @@ namespace Ryujinx.Graphics.Gal
B5G6R5 = 0x15,
BC7U = 0x17,
G8R8 = 0x18,
+ R16 = 0x1b,
R8 = 0x1d,
BC1 = 0x24,
BC2 = 0x25,
diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
index 50b802c1..c8000603 100644
--- a/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
+++ b/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
@@ -66,6 +66,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL
case GalTextureFormat.A1B5G5R5: return (PixelFormat.Rgba, PixelType.UnsignedShort5551);
case GalTextureFormat.B5G6R5: return (PixelFormat.Rgb, PixelType.UnsignedShort565);
case GalTextureFormat.G8R8: return (PixelFormat.Rg, PixelType.UnsignedByte);
+ case GalTextureFormat.R16: return (PixelFormat.Red, PixelType.HalfFloat);
case GalTextureFormat.R8: return (PixelFormat.Red, PixelType.UnsignedByte);
}
diff --git a/Ryujinx.Graphics/Gal/Shader/GlslDecl.cs b/Ryujinx.Graphics/Gal/Shader/GlslDecl.cs
index 43a04813..4002c29a 100644
--- a/Ryujinx.Graphics/Gal/Shader/GlslDecl.cs
+++ b/Ryujinx.Graphics/Gal/Shader/GlslDecl.cs
@@ -159,7 +159,8 @@ namespace Ryujinx.Graphics.Gal.Shader
case ShaderIrOperAbuf Abuf:
{
//This is a built-in input variable.
- if (Abuf.Offs == VertexIdAttr)
+ if (Abuf.Offs == VertexIdAttr ||
+ Abuf.Offs == InstanceIdAttr)
{
break;
}
diff --git a/Ryujinx.Graphics/Gal/Shader/GlslDecompiler.cs b/Ryujinx.Graphics/Gal/Shader/GlslDecompiler.cs
index 71a53a5a..1bcedacb 100644
--- a/Ryujinx.Graphics/Gal/Shader/GlslDecompiler.cs
+++ b/Ryujinx.Graphics/Gal/Shader/GlslDecompiler.cs
@@ -975,7 +975,8 @@ namespace Ryujinx.Graphics.Gal.Shader
switch (Node)
{
case ShaderIrOperAbuf Abuf:
- return Abuf.Offs == GlslDecl.VertexIdAttr
+ return Abuf.Offs == GlslDecl.VertexIdAttr ||
+ Abuf.Offs == GlslDecl.InstanceIdAttr
? OperType.I32
: OperType.F32;
diff --git a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeHelper.cs b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeHelper.cs
index 3299ebab..a8ad5ec2 100644
--- a/Ryujinx.Graphics/Gal/Shader/ShaderDecodeHelper.cs
+++ b/Ryujinx.Graphics/Gal/Shader/ShaderDecodeHelper.cs
@@ -14,7 +14,7 @@ namespace Ryujinx.Graphics.Gal.Shader
for (int Index = 0; Index <= Size; Index++)
{
- Opers[Index] = new ShaderIrOperAbuf(Abuf, Reg);
+ Opers[Index] = new ShaderIrOperAbuf(Abuf + Index * 4, Reg);
}
return Opers;
diff --git a/Ryujinx.HLE/Gpu/TextureHelper.cs b/Ryujinx.HLE/Gpu/TextureHelper.cs
index f1b3f0b3..e48e25ad 100644
--- a/Ryujinx.HLE/Gpu/TextureHelper.cs
+++ b/Ryujinx.HLE/Gpu/TextureHelper.cs
@@ -33,6 +33,7 @@ namespace Ryujinx.HLE.Gpu
case GalTextureFormat.A1B5G5R5: return Texture.Width * Texture.Height * 2;
case GalTextureFormat.B5G6R5: return Texture.Width * Texture.Height * 2;
case GalTextureFormat.G8R8: return Texture.Width * Texture.Height * 2;
+ case GalTextureFormat.R16: return Texture.Width * Texture.Height * 2;
case GalTextureFormat.R8: return Texture.Width * Texture.Height;
case GalTextureFormat.BC1:
diff --git a/Ryujinx.HLE/Gpu/TextureReader.cs b/Ryujinx.HLE/Gpu/TextureReader.cs
index 4436e07f..9e9ff783 100644
--- a/Ryujinx.HLE/Gpu/TextureReader.cs
+++ b/Ryujinx.HLE/Gpu/TextureReader.cs
@@ -17,6 +17,7 @@ namespace Ryujinx.HLE.Gpu
case GalTextureFormat.A1B5G5R5: return Read5551 (Memory, Texture);
case GalTextureFormat.B5G6R5: return Read565 (Memory, Texture);
case GalTextureFormat.G8R8: return Read2Bpp (Memory, Texture);
+ case GalTextureFormat.R16: return Read2Bpp (Memory, Texture);
case GalTextureFormat.R8: return Read1Bpp (Memory, Texture);
case GalTextureFormat.BC7U: return Read16Bpt4x4(Memory, Texture);
case GalTextureFormat.BC1: return Read8Bpt4x4 (Memory, Texture);
diff --git a/Ryujinx.HLE/Hid/Hid.cs b/Ryujinx.HLE/Hid/Hid.cs
index 054c4fac..2f007f1f 100644
--- a/Ryujinx.HLE/Hid/Hid.cs
+++ b/Ryujinx.HLE/Hid/Hid.cs
@@ -130,9 +130,7 @@ namespace Ryujinx.HLE.Input
{
long BaseControllerOffset = Position + HidControllersOffset + 8 * HidControllerSize;
- HidControllerType Type =
- HidControllerType.ControllerType_Handheld |
- HidControllerType.ControllerType_JoyconPair;
+ HidControllerType Type = HidControllerType.ControllerType_Handheld;
bool IsHalf = false;
@@ -276,4 +274,4 @@ namespace Ryujinx.HLE.Input
return (long)((ulong)Environment.TickCount * 19_200);
}
}
-} \ No newline at end of file
+}