mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-23 09:03:22 -05:00
A slice of a depth array target (DB_DEPTH_VIEW SLICE_START) offset its depth and stencil addresses but kept the array's DB_HTILE_DATA_BASE as its HTILE. Every slice then shared slice 0's metadata: a fast clear of slice 0's HTILE cleared every slice, and a clear of any other slice's HTILE matched none. A slice's HTILE now starts at the base plus the slice times one slice's pipe-aligned metadata, as addrlib addresses it (sliceSize * slice in Gfx10Lib::HwlComputeHtileAddrFromCoord; HtileMetadataBytes is that slice size). The recognized HTILE clear kernel now reports the bytes it clears, 16 per thread (global_store_dwordx4 at the thread index << 4), and a surface takes the clear when that range covers its HTILE, as a DMA_DATA fill does; a clear over a whole array still clears every slice. Uncharted: Legacy of Thieves Collection (PPSA05684) renders its sun shadow cascades into the four slices of a 2048x2048 D16 array; each slice's HTILE lies 256 KiB after the previous one.