From cccee2d3685da9c46bf70aefaca71c26214f3c31 Mon Sep 17 00:00:00 2001 From: ParantezTech <12572227+par274@users.noreply.github.com> Date: Mon, 5 Oct 2026 18:38:08 +0300 Subject: [PATCH] [GPU] Carry DCC metadata on compressed textures --- .../Gpu/Images/ImageRequestBuilders.Texture.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/SharpEmu.Libs/Gpu/Images/ImageRequestBuilders.Texture.cs b/src/SharpEmu.Libs/Gpu/Images/ImageRequestBuilders.Texture.cs index bb1533a..3cd10cf 100644 --- a/src/SharpEmu.Libs/Gpu/Images/ImageRequestBuilders.Texture.cs +++ b/src/SharpEmu.Libs/Gpu/Images/ImageRequestBuilders.Texture.cs @@ -300,6 +300,14 @@ public static partial class ImageRequestBuilders description.BytesPerBlock = blockBytes != 0 ? blockBytes : GuestPixelFormats.BytesPerElement(format); description.Samples = samples; description.TileMode = tile; + var metadataAddress = descriptor.MetadataAddress << 8; + if (!storage && samples == 1 && levels == 1 && tile == GuestTileMode.RenderTarget && descriptor.MetadataCompress && + metadataAddress != 0 && metadataAddress < TrackerLayout.SpaceBytes) + { + description.Metadata.Kind = MetadataKind.Dcc; + description.Metadata.Range = new GuestSpan(metadataAddress, 0); + } + if (samples > 1) { description.MipLayout[0] = new MipLevelLayout { Offset = 0, Size = size.Size, Pitch = pitch, Height = height };