From 6c0140186250a9ac7ed50786b2426271750a7a20 Mon Sep 17 00:00:00 2001 From: Nawid3333 <102778966+Nawid3333@users.noreply.github.com> Date: Wed, 28 Oct 2026 04:44:09 +0100 Subject: [PATCH] graphics: accept video-out buffers with 128-byte independent DCC blocks (Gran Turismo 7) (#1945) graphics: accept video-out buffers with 128-byte independent DCC blocks --- src/graphics/host_gpu/renderer/image/imageInfo.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/graphics/host_gpu/renderer/image/imageInfo.h b/src/graphics/host_gpu/renderer/image/imageInfo.h index 207fd37af..cff92688b 100644 --- a/src/graphics/host_gpu/renderer/image/imageInfo.h +++ b/src/graphics/host_gpu/renderer/image/imageInfo.h @@ -19,7 +19,13 @@ namespace Libs::Graphics { enum class ColorTransform : uint32_t { None, SwapBgra16, Reverse10_11_11 }; -enum class VideoOutCompression : uint8_t { Uncompressed, Dcc256_256_0, Dcc256_64_64, Unsupported }; +enum class VideoOutCompression : uint8_t { + Uncompressed, + Dcc256_256_0, + Dcc256_64_64, + Dcc128_128_128, + Unsupported +}; enum class ImageMetadataKind : uint8_t { None, Htile, Dcc, Cmask }; @@ -287,8 +293,9 @@ inline bool ImageInfo::IsDepth() const noexcept { [[nodiscard]] inline VideoOutCompression ClassifyVideoOutCompression(bool compressed, uint64_t metadata_address, uint32_t dcc_control, uint64_t dcc_clear_color) noexcept { - constexpr uint32_t DCC_256_256_0 = 0x00000048u; - constexpr uint32_t DCC_256_64_64 = 0x00000208u; + constexpr uint32_t DCC_256_256_0 = 0x00000048u; + constexpr uint32_t DCC_256_64_64 = 0x00000208u; + constexpr uint32_t DCC_128_128_128 = 0x00100024u; if (!compressed) { return metadata_address == 0 && dcc_control == 0 && dcc_clear_color == 0 ? VideoOutCompression::Uncompressed @@ -300,6 +307,7 @@ ClassifyVideoOutCompression(bool compressed, uint64_t metadata_address, uint32_t switch (dcc_control) { case DCC_256_256_0: return VideoOutCompression::Dcc256_256_0; case DCC_256_64_64: return VideoOutCompression::Dcc256_64_64; + case DCC_128_128_128: return VideoOutCompression::Dcc128_128_128; default: return VideoOutCompression::Unsupported; } }