diff options
| author | Ac_K <Acoustik666@gmail.com> | 2021-01-05 06:02:49 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-05 06:02:49 +0100 |
| commit | 73f6149bd6615fa2447fa09c3209598776fd7e14 (patch) | |
| tree | 25e7cd090f1a8ba76be90bf73f9c5dd8faa79193 | |
| parent | 430ba6da65a781196db7d723cc88710bb7f5caf8 (diff) | |
gpu: Implement missing texture formats (#1867)
* gpu: Implement Etc2Rgba texture format
* Add more format
* Fix wrong pixel format
| -rw-r--r-- | Ryujinx.Graphics.GAL/Format.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Gpu/Image/FormatTable.cs | 3 | ||||
| -rw-r--r-- | Ryujinx.Graphics.OpenGL/FormatTable.cs | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.GAL/Format.cs b/Ryujinx.Graphics.GAL/Format.cs index 10b754ea..15cf5f4f 100644 --- a/Ryujinx.Graphics.GAL/Format.cs +++ b/Ryujinx.Graphics.GAL/Format.cs @@ -82,6 +82,8 @@ namespace Ryujinx.Graphics.GAL Bc7Srgb, Bc6HSfloat, Bc6HUfloat, + Etc2RgbaUnorm, + Etc2RgbaSrgb, R8Uscaled, R8Sscaled, R16Uscaled, diff --git a/Ryujinx.Graphics.Gpu/Image/FormatTable.cs b/Ryujinx.Graphics.Gpu/Image/FormatTable.cs index d8f2a9d4..a1911d56 100644 --- a/Ryujinx.Graphics.Gpu/Image/FormatTable.cs +++ b/Ryujinx.Graphics.Gpu/Image/FormatTable.cs @@ -53,6 +53,7 @@ namespace Ryujinx.Graphics.Gpu.Image { 0x7ffaf, new FormatInfo(Format.D32Float, 1, 1, 4, 1) }, { 0x24a0e, new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 2) }, { 0x24a29, new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 2) }, + { 0x48a29, new FormatInfo(Format.D24UnormS8Uint, 1, 1, 4, 2) }, { 0x25385, new FormatInfo(Format.D32FloatS8Uint, 1, 1, 8, 2) }, { 0x253b0, new FormatInfo(Format.D32FloatS8Uint, 1, 1, 8, 2) }, { 0xa4908, new FormatInfo(Format.R8G8B8A8Srgb, 1, 1, 4, 4) }, @@ -77,6 +78,8 @@ namespace Ryujinx.Graphics.Gpu.Image { 0xa4917, new FormatInfo(Format.Bc7Srgb, 4, 4, 16, 4) }, { 0x7ff90, new FormatInfo(Format.Bc6HSfloat, 4, 4, 16, 4) }, { 0x7ff91, new FormatInfo(Format.Bc6HUfloat, 4, 4, 16, 4) }, + { 0x2490b, new FormatInfo(Format.Etc2RgbaUnorm, 4, 4, 16, 4) }, + { 0xa490b, new FormatInfo(Format.Etc2RgbaSrgb, 4, 4, 16, 4) }, { 0x24940, new FormatInfo(Format.Astc4x4Unorm, 4, 4, 16, 4) }, { 0x24950, new FormatInfo(Format.Astc5x4Unorm, 5, 4, 16, 4) }, { 0x24941, new FormatInfo(Format.Astc5x5Unorm, 5, 5, 16, 4) }, diff --git a/Ryujinx.Graphics.OpenGL/FormatTable.cs b/Ryujinx.Graphics.OpenGL/FormatTable.cs index 4261b495..52da3efd 100644 --- a/Ryujinx.Graphics.OpenGL/FormatTable.cs +++ b/Ryujinx.Graphics.OpenGL/FormatTable.cs @@ -96,6 +96,8 @@ namespace Ryujinx.Graphics.OpenGL Add(Format.Bc7Srgb, new FormatInfo(1, false, false, All.CompressedSrgbAlphaBptcUnorm)); Add(Format.Bc6HSfloat, new FormatInfo(1, false, false, All.CompressedRgbBptcSignedFloat)); Add(Format.Bc6HUfloat, new FormatInfo(1, false, false, All.CompressedRgbBptcUnsignedFloat)); + Add(Format.Etc2RgbaUnorm, new FormatInfo(1, false, false, All.CompressedRgba8Etc2Eac)); + Add(Format.Etc2RgbaSrgb, new FormatInfo(1, false, false, All.CompressedSrgb8Alpha8Etc2Eac)); Add(Format.R8Uscaled, new FormatInfo(1, false, true, All.R8ui, PixelFormat.RedInteger, PixelType.UnsignedByte)); Add(Format.R8Sscaled, new FormatInfo(1, false, true, All.R8i, PixelFormat.RedInteger, PixelType.Byte)); Add(Format.R16Uscaled, new FormatInfo(1, false, true, All.R16ui, PixelFormat.RedInteger, PixelType.UnsignedShort)); |
