mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 16:43:05 -05:00
An indirect draw drained queue 0's draw pipeline on entry and recorded every record on the worker, so titles that draw mostly through DRAW_INDIRECT, DRAW_INDEX_INDIRECT and DRAW_INDEX_INDIRECT_MULTI got no overlap between the worker's capture of one draw and the committer's recording of the previous. The draw now drains only when its records or its count overlap a write still queued on the pipeline. Records drawn inline drain first, so they stay in order, and the last drawn record is queued like a direct draw, carrying its write ranges. APS5_NO_PIPELINED_INDIRECT=1 restores the drain on every indirect draw. agc_driver_pipelined_indirect_draw holds the committer with a blocking item and checks that two indirect draws queue behind it and draw what a direct draw does, and that a draw whose record a queued label writes waits for it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>