mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
A draw or dispatch whose shaders have guarded descriptor slots (or a rect list) but no BDA table gets a fault buffer, and with it NeedsCompletion(), which kept its resources out of the resource cache, and NeverReusable skipped the cache lookup for it. In PPSA36082 nearly every draw in the hub is such a build, so the cache served none of them. Such an object has no table to revalidate, no stores through BDA and no copied writes, so it is now reusable. Each use of a reused object checks the fault record when its batch completes (CheckFaults) instead of running the once-only write-back; draw recipes over such a template register the same check, and dispatch recipes still skip templates with completion work. NeverReusable now refuses what noteReusable refuses: a BDA table, or a fault buffer with APS5_LOOP_GUARD set (its fault resets the buffer). Co-Authored-By: Claude Opus 5.5 <[email protected]>