Files
AnyPS5/docs/dev
Yunus Shaikh 5daa8cb7a9 fix(agc): take a native multisample depth metadata fill noted again once its GPU write is recorded
A compute dispatch of the memory-value fill kernel is noted twice: the
dispatch path notes it from MatchMemoryValueFill before the fill runs
(Dispatch.cpp), and storeBufferFill notes it again after FillBuffer has
recorded its GPU write. On a native multisample depth target the second
note refused "overlapping native multisample depth clear transitions
are not implemented" for the HTILE, and the same refusal for the
separate stencil plane, so a compute fill of either one never reached
the sample.

A second note of a pending fill is now taken as the same fill when it
has the same pattern, the first note had no write note, and the one
write recorded over the range since the first note is a word fill of
the whole range with that pattern. That write's note becomes the fill's
note, and the first note's write generation is kept, so CPU writes
between the two notes are still refused. Two notes without that write
between them still refuse as overlapping (agc_driver_native_depth_stencil's
FillOverlap case, and a new stencil plane case). A memory-value fill
that falls back to CPU stores, with no host import of the range, is
still refused as overlapping.

Tested: agc_driver_native_depth_separate_stencil runs Ghost's sequence
with each fill noted, queued on the GPU and noted again, and samples
the cleared depth and stencil 0. A stencil plane fill noted twice
without a write between is refused. Without the change the second
note refuses "overlapping native multisample depth clear transitions
are not implemented".
2026-10-21 23:37:29 +00:00
..