aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/vulkan_common/vulkan_device.cpp
diff options
context:
space:
mode:
authorTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-28 23:46:53 -0400
committerTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-28 23:46:53 -0400
commit63244330cde7e6b2b2755e8c58d27cc34c3309ab (patch)
treecc147e44a8cfba4ab4776c39cd4d3835e04e45b1 /src/video_core/vulkan_common/vulkan_device.cpp
parent25b674eabdb92212a6d8149d6616b2af59317695 (diff)
kernel: spin briefly before sleeping on a contended KSpinLock
The scheduler lock is taken by every emulated core thousands of times a frame (title 1's job system: WaitForAddress / SignalToAddress / yield) and held for microseconds. As a std::mutex, a contended Lock put the host thread to sleep at once. Now a three-state futex lock: one atomic op uncontended, ~128 pause spins when contended, then std::atomic::wait. Time blocked in Lock fell ~20-25% on title 1's cores.
Diffstat (limited to 'src/video_core/vulkan_common/vulkan_device.cpp')
0 files changed, 0 insertions, 0 deletions