Implement D24S8 + R11G11B10 Formats

This commit is contained in:
PixelyIon 2022-01-22 06:21:51 +05:30
parent bd718175ce
commit 90a1b3348c
2 changed files with 11 additions and 0 deletions

View File

@ -203,6 +203,7 @@ namespace skyline::gpu::interconnect {
FORMAT_SAME_CASE(B5G6R5, Unorm);
FORMAT_SAME_CASE(B5G5R5A1, Unorm);
FORMAT_SAME_INT_FLOAT_CASE(R32);
FORMAT_SAME_CASE(R11G11B10, Float);
FORMAT_SAME_NORM_INT_FLOAT_CASE(R16G16);
FORMAT_SAME_CASE(R8G8B8A8, Unorm);
FORMAT_SAME_CASE(R8G8B8A8, Srgb);
@ -253,6 +254,8 @@ namespace skyline::gpu::interconnect {
return format::D32Float;
case MaxwellDepthRtFormat::S8D24Unorm:
return format::S8D24Unorm;
case MaxwellDepthRtFormat::D24S8Unorm:
return format::D24S8Unorm;
default:
throw exception("Cannot translate the supplied depth RT format: 0x{:X}", static_cast<u32>(format));
}

View File

@ -72,6 +72,11 @@ namespace skyline::gpu::format {
FORMAT_INT_FLOAT(R32, 32, eR32);
FORMAT_NORM_INT_FLOAT(R16G16, 32, eR16G16);
FORMAT(B10G11R11Float, 32, eB10G11R11UfloatPack32);
FORMAT(R11G11B10Float, 32, eB10G11R11UfloatPack32, .swizzle = {
.red = swc::Blue,
.green = swc::Green,
.blue = swc::Red,
});
FORMAT_NORM_INT_SRGB(R8G8B8A8, 32, eR8G8B8A8);
FORMAT_NORM_INT_SRGB(G8B8A8R8, 32, eB8G8R8A8, .swizzle = {
.blue = swc::Alpha,
@ -149,6 +154,9 @@ namespace skyline::gpu::format {
FORMAT(S8D24Unorm, 32, eD24UnormS8Uint, .vkAspect = {
vka::eStencil | vka::eDepth
}); // TODO: Swizzle Depth/Stencil
FORMAT(D24S8Unorm, 32, eD24UnormS8Uint, .vkAspect = {
vka::eStencil | vka::eDepth
});
#undef FORMAT
#undef FORMAT_SUFF_UNORM_SRGB