AnyPS5/core
raghav314 c7f4690cd3 fix(agc): host imports write-protect only pages a collect already protects
Importing guest memory collected the write watch over the whole import,
which write-protected every page of it, so pages nothing had collected yet
took a write fault on their first CPU write. The import now collects only
the parts a collect already protects (GuestWriteWatchCollectArmed). The
rest stays unprotected until something collects it, which reports it as
written; a GPU write recorded into such memory (MarkWritten) first collects
the never-collected parts of its 64 KiB blocks
(GuestWriteWatchCollectFresh), so that report is older than the GPU's
results and does not read as a CPU write over them.

Those pages are stamped as written and their CPU pages are noted, but the
block's CPU stamp is left alone, so a GPU label record or a pending storage
image elsewhere in the block does not see a CPU write. StoredOver and
UnchangedSinceCollected read the noted pages whenever a block has them, so
a store to such a page is still seen by a check over that page. The extra
generation step happens only when something was collected; a block whose
write protection fails is unwatched and the write returns no generation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 11:38:28 +05:30
..
Decoder feat(jpegenc): honor the encode restart interval 2026-10-06 14:16:07 +02:00
libs fix(agc): host imports write-protect only pages a collect already protects 2026-10-10 11:38:28 +05:30
relinker Merge pull request #1651 from emirplus/feat/relinker-tls-register-alu 2026-10-10 07:58:52 +02:00
shader/recompiler Merge pull request #1966 from Deftera186/fix/shader-ldexp-f16-inline-constants 2026-10-10 08:06:15 +02:00