mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-01 12:45:56 +00:00
cacheDrawStages never admitted a draw an indirect packet runs on the CPU path, so a title whose draws are mostly DRAW_INDEX_INDIRECT packets with a patched user word the vertex program reads as a value missed the draw cache on nearly every lookup whatever its size. On Demon's Souls 97 % of the draw packets are such draws and the hit rate stayed at 9 % with APS5_DRAW_CACHE_ENTRIES=32768. APS5_DRAW_CACHE_INDIRECT admits them. A hit reuses the fragment stage and skips the first vertex pass; the stage whose user word the record patches is still re-materialized per record, as the hit path already provided for. Tested: agc_driver_draw_cache_reuse_indirect (three DRAW_INDIRECT draws patching an unfolded user word: one insert and one hit with the knob, none without), the other draw_cache_reuse, key_miss, register_key and draw_cache_relocation tests on lavapipe and an RTX 5070 Ti.