mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-29 12:15:39 +00:00
DecodeColorBuffer dropped the DCC address of a color target with more than one mip, so the target's resident image had no keys: it was uploaded from guest memory under the game's fast-clear keys, and no draw into it marked them uncompressed. The game's textures over the same chain name the keys, so they kept sampling the clear (0000 reads as (0,0,0,0)) whatever was drawn. MXGP 26, Borderlands 4 and Forspoken render such targets. - ColorTarget.chainDccAddress keeps the keys of a 2D single-layer chain; dccAddress stays 0, so the per-draw single-mip key handling is unchanged. - SurfaceForTarget gives the resident surface those keys, and the image then treats them as a multi-mip storage image does: a uniform clear is cleared on the GPU at upload, and the first write marks every key uncompressed. - A draw recipe's key check uses the surface's keys. - sizeof(State) is 840: the recipe codec and CanonicalPipelineState do not copy the field. Co-Authored-By: Claude Opus 5.5 <[email protected]>