From 600b94505cb951b827b173a40f8bf2ceee1617cc Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Wed, 12 Jan 2022 20:48:16 +0000 Subject: [PATCH] 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. --- app/src/main/cpp/skyline/gpu/interconnect/graphics_context.h | 5 ++--- app/src/main/cpp/skyline/gpu/texture/format.h | 5 +++++ app/src/main/cpp/skyline/soc/gm20b/engines/maxwell/types.h | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/cpp/skyline/gpu/interconnect/graphics_context.h b/app/src/main/cpp/skyline/gpu/interconnect/graphics_context.h index cd337a04..e0e207fd 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/graphics_context.h +++ b/app/src/main/cpp/skyline/gpu/interconnect/graphics_context.h @@ -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); diff --git a/app/src/main/cpp/skyline/gpu/texture/format.h b/app/src/main/cpp/skyline/gpu/texture/format.h index e3adf24f..eaa79077 100644 --- a/app/src/main/cpp/skyline/gpu/texture/format.h +++ b/app/src/main/cpp/skyline/gpu/texture/format.h @@ -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); diff --git a/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell/types.h b/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell/types.h index 23de06e5..b9fe2302 100644 --- a/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell/types.h +++ b/app/src/main/cpp/skyline/soc/gm20b/engines/maxwell/types.h @@ -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,