mirror of
https://github.com/par274/sharpemu.git
synced 2026-08-07 18:31:17 +08:00
c086e32f3d
ObserveComputeDispatch only returned evaluation's pooled arrays when evaluationHandledByCpu was set. Dispatches rejected before submission (empty resource tables, oversized workgroup, compile failure) or a compute submit that got dropped instead of enqueued (workSequence == 0) never handed those buffers to a consumer that would return them, leaking one lease per occurrence and growing GuestDataPool.Shared without bound over a long session. Adds GuestDataPool.DiagnosticStats() (outstanding lease count, idle cached bytes) surfaced in the periodic [LOADER][PERF] line, to catch this class of regression going forward. Verified on Ghost of Yotei and Demon's Souls: pool_leases grew unbounded before the fix (525 in 5 min on Demon's Souls, 1114 in 180s on Yotei) and stays flat/bounded after (0-6 and 2-18 respectively), with no behavioral regression observed.