mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-28 00:35:47 +00:00
StencilReplaySafe refused every program with usesDma, including pixel shaders whose only BDA accesses are reads (Onimusha: Way of the Sword, PPSA27836: one global load, then image and buffer reads). Replaying such a shader per reference value is idempotent: its only side effect is the first-fault record, a compare-exchange that keeps the first fault; a fault is never retried but thrown by CheckFault, and replayed draws with a BDA table already wait and check faults before publishing. Written-page tracking exists only in programs with bdaWrites, which stay refused. Compiled shaders now carry bdaWrites, and ShadersWriteMemory counts a BDA page table as a memory write only for a program that writes through it. Co-Authored-By: Claude Opus 5.5 <[email protected]>