aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2018-06-10 01:00:43 -0300
committergdkchan <gab.dark.100@gmail.com>2018-06-10 01:00:43 -0300
commit49fd76db0fee72870e0b7fee73e6b6380fa00823 (patch)
tree52ac8e2907c1d32b34cbf23f4549a8da275c9489
parentadeb8793c21e8128ef50ecb555663dfa7ea9fda6 (diff)
Fix a small size related issue on MapBufferEx and add the BC7U texture format
-rw-r--r--Ryujinx.Core/Gpu/TextureHelper.cs1
-rw-r--r--Ryujinx.Core/Gpu/TextureReader.cs1
-rw-r--r--Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs4
-rw-r--r--Ryujinx.Graphics/Gal/GalTextureFormat.cs1
-rw-r--r--Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs11
-rw-r--r--Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs1
6 files changed, 11 insertions, 8 deletions
diff --git a/Ryujinx.Core/Gpu/TextureHelper.cs b/Ryujinx.Core/Gpu/TextureHelper.cs
index 1863bb77..075fbc3e 100644
--- a/Ryujinx.Core/Gpu/TextureHelper.cs
+++ b/Ryujinx.Core/Gpu/TextureHelper.cs
@@ -44,6 +44,7 @@ namespace Ryujinx.Core.Gpu
return W * H * 8;
}
+ case GalTextureFormat.BC7U:
case GalTextureFormat.BC2:
case GalTextureFormat.BC3:
case GalTextureFormat.BC5:
diff --git a/Ryujinx.Core/Gpu/TextureReader.cs b/Ryujinx.Core/Gpu/TextureReader.cs
index acd17c5d..e6058de1 100644
--- a/Ryujinx.Core/Gpu/TextureReader.cs
+++ b/Ryujinx.Core/Gpu/TextureReader.cs
@@ -18,6 +18,7 @@ namespace Ryujinx.Core.Gpu
case GalTextureFormat.B5G6R5: return Read565 (Memory, Texture);
case GalTextureFormat.G8R8: 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);
case GalTextureFormat.BC2: return Read16Bpt4x4(Memory, Texture);
case GalTextureFormat.BC3: return Read16Bpt4x4(Memory, Texture);
diff --git a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs
index 72622471..a69bc3aa 100644
--- a/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs
+++ b/Ryujinx.Core/OsHle/Services/Nv/NvGpuAS/NvGpuASIoctl.cs
@@ -140,11 +140,9 @@ namespace Ryujinx.Core.OsHle.Services.Nv.NvGpuAS
if (Size == 0)
{
- Size = Map.Size;
+ Size = (uint)Map.Size;
}
- Size = Map.Size;
-
int Result = NvResult.Success;
//Note: When the fixed offset flag is not set,
diff --git a/Ryujinx.Graphics/Gal/GalTextureFormat.cs b/Ryujinx.Graphics/Gal/GalTextureFormat.cs
index d61495eb..3bac2f80 100644
--- a/Ryujinx.Graphics/Gal/GalTextureFormat.cs
+++ b/Ryujinx.Graphics/Gal/GalTextureFormat.cs
@@ -8,6 +8,7 @@ namespace Ryujinx.Graphics.Gal
R32 = 0xf,
A1B5G5R5 = 0x14,
B5G6R5 = 0x15,
+ BC7U = 0x17,
G8R8 = 0x18,
R8 = 0x1d,
BC1 = 0x24,
diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
index 2a9641fc..50b802c1 100644
--- a/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
+++ b/Ryujinx.Graphics/Gal/OpenGL/OGLEnumConverter.cs
@@ -76,11 +76,12 @@ namespace Ryujinx.Graphics.Gal.OpenGL
{
switch (Format)
{
- case GalTextureFormat.BC1: return PixelInternalFormat.CompressedRgbaS3tcDxt1Ext;
- case GalTextureFormat.BC2: return PixelInternalFormat.CompressedRgbaS3tcDxt3Ext;
- case GalTextureFormat.BC3: return PixelInternalFormat.CompressedRgbaS3tcDxt5Ext;
- case GalTextureFormat.BC4: return PixelInternalFormat.CompressedRedRgtc1;
- case GalTextureFormat.BC5: return PixelInternalFormat.CompressedRgRgtc2;
+ case GalTextureFormat.BC7U: return PixelInternalFormat.CompressedRgbaBptcUnorm;
+ case GalTextureFormat.BC1: return PixelInternalFormat.CompressedRgbaS3tcDxt1Ext;
+ case GalTextureFormat.BC2: return PixelInternalFormat.CompressedRgbaS3tcDxt3Ext;
+ case GalTextureFormat.BC3: return PixelInternalFormat.CompressedRgbaS3tcDxt5Ext;
+ case GalTextureFormat.BC4: return PixelInternalFormat.CompressedRedRgtc1;
+ case GalTextureFormat.BC5: return PixelInternalFormat.CompressedRgRgtc2;
}
throw new NotImplementedException(Format.ToString());
diff --git a/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs b/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs
index 540e4735..d81fcc48 100644
--- a/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs
+++ b/Ryujinx.Graphics/Gal/OpenGL/OGLTexture.cs
@@ -202,6 +202,7 @@ namespace Ryujinx.Graphics.Gal.OpenGL
{
switch (Format)
{
+ case GalTextureFormat.BC7U:
case GalTextureFormat.BC1:
case GalTextureFormat.BC2:
case GalTextureFormat.BC3: