Fix A2R10G10B10 render target format

This was wrongly described as R10G10B10A2 in the enum when it's actually A2R10G10B10, a format natively supported in Vulkan with just a swizzle.
This commit is contained in:
Billy Laws 2022-01-12 20:48:16 +00:00 committed by PixelyIon
parent 175ba11f07
commit 600b94505c
3 changed files with 9 additions and 5 deletions

View File

@ -208,9 +208,8 @@ namespace skyline::gpu::interconnect {
FORMAT_NORM_INT_SRGB_CASE(R8G8B8X8, R8G8B8A8);
FORMAT_SAME_CASE(B8G8R8A8, Unorm);
FORMAT_SAME_CASE(B8G8R8A8, Srgb);
/* Not supported by VK
FORMAT_SAME_CASE(R10G10B10A2, Unorm);
FORMAT_SAME_CASE(R10G10B10A2, Uint);*/
FORMAT_SAME_CASE(A2R10G10B10, Unorm);
FORMAT_SAME_CASE(A2R10G10B10, Uint);
FORMAT_SAME_INT_CASE(R32G32);
FORMAT_SAME_CASE(R32G32, Float);
FORMAT_SAME_CASE(R16G16B16A16, Float);

View File

@ -75,6 +75,11 @@ namespace skyline::gpu::format {
});
FORMAT_NORM_INT_SRGB(B8G8R8A8, 32, eB8G8R8A8);
FORMAT_SUFF_NORM_INT(A2B10G10R10, 32, eA2B10G10R10, Pack32);
FORMAT_SUFF_NORM_INT(A2R10G10B10, 32, eA2B10G10R10, Pack32, .swizzle = {
.blue = swc::Red,
.red = swc::Blue
});
FORMAT_SUFF_NORM_INT_SRGB(A8B8G8R8, 32, eA8B8G8R8, Pack32);
FORMAT_INT_FLOAT(R32G32, 32 * 2, eR32G32);
FORMAT_NORM_INT_FLOAT(R16G16B16A16, 16 * 4, eR16G16B16A16);

View File

@ -86,8 +86,8 @@ namespace skyline::soc::gm20b::engine::maxwell3d::type {
R16G16B16X16Float = 0xCE,
B8G8R8A8Unorm = 0xCF,
B8G8R8A8Srgb = 0xD0,
R10G10B10A2Unorm = 0xD1,
R10G10B10A2Uint = 0xD2,
A2R10G10B10Unorm = 0xD1,
A2R10G10B10Uint = 0xD2,
R8G8B8A8Unorm = 0xD5,
R8G8B8A8Srgb = 0xD6,
R8G8B8X8Snorm = 0xD7,