[D3D12] Fix 2:1-subsampled format swizzle

This commit is contained in:
Triang3l 2022-05-19 21:40:03 +03:00
parent 825a5b176c
commit 7d63d6e1d3
2 changed files with 3 additions and 2 deletions

View File

@ -131,7 +131,7 @@ const D3D12TextureCache::HostFormat D3D12TextureCache::host_formats_[64] = {
// Red and blue probably must be swapped, similar to k_Y1_Cr_Y0_Cb_REP.
{DXGI_FORMAT_G8R8_G8B8_UNORM, DXGI_FORMAT_G8R8_G8B8_UNORM, LoadMode::k32bpb,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, true, DXGI_FORMAT_UNKNOWN,
LoadMode::kUnknown, xenos::XE_GPU_TEXTURE_SWIZZLE_BGRA},
LoadMode::kUnknown, xenos::XE_GPU_TEXTURE_SWIZZLE_BGRR},
// k_Y1_Cr_Y0_Cb_REP
// Used for videos in 54540829. Red and blue must be swapped.
// TODO(Triang3l): D3DFMT_G8R8_G8B8 is DXGI_FORMAT_R8G8_B8G8_UNORM * 255.0f,
@ -140,7 +140,7 @@ const D3D12TextureCache::HostFormat D3D12TextureCache::host_formats_[64] = {
// a very rare case.
{DXGI_FORMAT_R8G8_B8G8_UNORM, DXGI_FORMAT_R8G8_B8G8_UNORM, LoadMode::k32bpb,
DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown, true, DXGI_FORMAT_UNKNOWN,
LoadMode::kUnknown, xenos::XE_GPU_TEXTURE_SWIZZLE_BGRA},
LoadMode::kUnknown, xenos::XE_GPU_TEXTURE_SWIZZLE_BGRR},
// k_16_16_EDRAM
// Not usable as a texture, also has -32...32 range.
{DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, LoadMode::kUnknown,

View File

@ -925,6 +925,7 @@ typedef enum {
XE_GPU_TEXTURE_SWIZZLE_RGGG = XE_GPU_MAKE_TEXTURE_SWIZZLE(R, G, G, G),
XE_GPU_TEXTURE_SWIZZLE_RGBB = XE_GPU_MAKE_TEXTURE_SWIZZLE(R, G, B, B),
XE_GPU_TEXTURE_SWIZZLE_RGBA = XE_GPU_MAKE_TEXTURE_SWIZZLE(R, G, B, A),
XE_GPU_TEXTURE_SWIZZLE_BGRR = XE_GPU_MAKE_TEXTURE_SWIZZLE(B, G, R, R),
XE_GPU_TEXTURE_SWIZZLE_BGRA = XE_GPU_MAKE_TEXTURE_SWIZZLE(B, G, R, A),
XE_GPU_TEXTURE_SWIZZLE_0000 = XE_GPU_MAKE_TEXTURE_SWIZZLE(0, 0, 0, 0),
} XE_GPU_TEXTURE_SWIZZLE;