Files
AnyPS5/docs/dev
thuanquangandClaude 24e2c28391 fix(agc): keep drawn linear target results through flush races and CPU-kept hooks
- MarkDrawn registers the scissor while any layer is pending instead of
  while the image is dirty. A flush on another thread can take the image
  out of the pending set between MarkSliceDirty and the registration;
  layerPending changes only under the GPU lock, so the flusher, which
  reads the drawn area after taking that lock, stores the widened area.
- AccessKeptByCpu no longer skips or evicts a drawn target. Its store
  writes CPU-stamped blocks inside the drawn rectangle, so the hook's
  CPU-kept rule would drop the draw's results.
- A drawn target that is stored whole keeps main's rule that CPU-written
  64 KiB blocks stay the CPU's.
- A linear target that is no longer cached is stored after its draw, as
  before: the pending registry holds raw pointers.
- LinearTargetCompletionPoints skips without host import, where the
  target is never resident. LinearTargetCpuWrites adds a driver read of
  the target between the CPU stores and the store.

Co-Authored-By: Claude <[email protected]>
2026-10-23 16:54:40 +07:00
..