diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-29 04:40:26 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-29 20:49:47 -0400 |
| commit | 1c2ed2a072ba24a3d21a25dfa6cfcce1bf1ae905 (patch) | |
| tree | 9e6af4b3df6506c51b924cfe5b69caed1ca58471 /src/video_core/gpu.cpp | |
| parent | 06f294c7e6b305d5d8904d284de70c268cc3f2e0 (diff) | |
video_core: skip empty fences; one lock per cache per fence; single-pass overlap subtract
Switch 2 titles signal a fence for each compute dispatch's release (5,000-7,000 a
second in title 1). With fast GPU fences the callback runs at once, so a fence with
no downloads, queries or queued operations does nothing: those (~20%) are no longer
made (one in 64 still is, for the operations fences carry). Each cache's lock is now
taken once per fence (the flush check took both together first). The overlap range
set's Subtract restarted its search after every erase (quadratic); the fencing thread
runs it for every downloaded range while holding the buffer cache. The GPU profiler
counts fences, skipped fences and buffer download bytes.
Diffstat (limited to 'src/video_core/gpu.cpp')
0 files changed, 0 insertions, 0 deletions
