fix super mario galaxy 0x25E00040 error (ryubing/ryujinx!155)

See merge request ryubing/ryujinx!155
This commit is contained in:
Astell
2025-10-10 17:37:42 -05:00
committed by GreemDev
parent 4f5a236c21
commit 4444ecae41
3 changed files with 6 additions and 0 deletions

View File

@@ -149,6 +149,7 @@ namespace Ryujinx.Graphics.GAL
B8G8R8A8Srgb, B8G8R8A8Srgb,
B10G10R10A2Unorm, B10G10R10A2Unorm,
X8UintD24Unorm, X8UintD24Unorm,
A8B8G8R8Uint,
} }
public static class FormatExtensions public static class FormatExtensions

View File

@@ -359,6 +359,7 @@ namespace Ryujinx.Graphics.Gpu.Image
A2B10G10R10Sint = (A2B10G10R10 << 21) | (Sint << 27), // 0x1e000000 A2B10G10R10Sint = (A2B10G10R10 << 21) | (Sint << 27), // 0x1e000000
A2B10G10R10Uscaled = (A2B10G10R10 << 21) | (Uscaled << 27), // 0x2e000000 A2B10G10R10Uscaled = (A2B10G10R10 << 21) | (Uscaled << 27), // 0x2e000000
A2B10G10R10Sscaled = (A2B10G10R10 << 21) | (Sscaled << 27), // 0x36000000 A2B10G10R10Sscaled = (A2B10G10R10 << 21) | (Sscaled << 27), // 0x36000000
A8B8G8R8Uint = (A8B8G8R8 << 21) | (Uint << 27), // 0x25E00040
} }
private static readonly Dictionary<TextureFormat, FormatInfo> _textureFormats = new() private static readonly Dictionary<TextureFormat, FormatInfo> _textureFormats = new()
@@ -554,6 +555,7 @@ namespace Ryujinx.Graphics.Gpu.Image
{ VertexAttributeFormat.A2B10G10R10Sint, Format.R10G10B10A2Sint }, { VertexAttributeFormat.A2B10G10R10Sint, Format.R10G10B10A2Sint },
{ VertexAttributeFormat.A2B10G10R10Uscaled, Format.R10G10B10A2Uscaled }, { VertexAttributeFormat.A2B10G10R10Uscaled, Format.R10G10B10A2Uscaled },
{ VertexAttributeFormat.A2B10G10R10Sscaled, Format.R10G10B10A2Sscaled }, { VertexAttributeFormat.A2B10G10R10Sscaled, Format.R10G10B10A2Sscaled },
{ VertexAttributeFormat.A8B8G8R8Uint, Format.A8B8G8R8Uint },
}; };
#pragma warning restore IDE0055 #pragma warning restore IDE0055

View File

@@ -211,6 +211,9 @@ namespace Ryujinx.Graphics.Vulkan
case Format.R16G16B16Uint: case Format.R16G16B16Uint:
format = VkFormat.R16G16B16A16Uint; format = VkFormat.R16G16B16A16Uint;
break; break;
case Format.A8B8G8R8Uint:
format = VkFormat.A8B8G8R8UintPack32;
break;
default: default:
Logger.Error?.Print(LogClass.Gpu, $"Format {srcFormat} is not supported by the host."); Logger.Error?.Print(LogClass.Gpu, $"Format {srcFormat} is not supported by the host.");
break; break;