• Zhiyi Zhang's avatar
    Revert "ntdll: Call usleep() instead of NtYieldExecution() in NtDelayExecution().". · fc3b2eba
    Zhiyi Zhang authored
    Manual tests on Windows 10 show that calling Sleep(0) or NtDelayExecution() with zero timeout in a
    loop do consume 100% of a CPU core, which is closer to the behavior of NtYieldExecution() than
    usleep(0). usleep(0) gives up the remaining timeslices even if there are no other threads to switch
    to, causing low utilization of CPU and performance issues.
    
    The original patch is b1a79c6b and the idea is to use usleep(0) to avoid a thread taking 100% of a
    CPU core for StarCraft 2 and Shadow of the Tomb Raider. However with wine-7.22, reverting the
    usleep(0) patch causes no behavior changes. For Shadow of the Tomb Raider, the 100% CPU issue is
    gone with or without the patch. For StarCraft 2, there is always a thread taking 100% CPU even with
    the patch. After discussing with Matteo, we decided it's better to revert the patch.
    
    Fix Mortal Kombat X performance drop during tower selection and Ragnarok Online bad performance.
    
    This reverts commit e86b4015.
    
    Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53327
    fc3b2eba
Name
Last commit
Last update
dlls Loading commit data...
documentation Loading commit data...
fonts Loading commit data...
include Loading commit data...
libs Loading commit data...
loader Loading commit data...
nls Loading commit data...
po Loading commit data...
programs Loading commit data...
server Loading commit data...
tools Loading commit data...
.editorconfig Loading commit data...
.gitlab-ci.yml Loading commit data...
.mailmap Loading commit data...
ANNOUNCE Loading commit data...
AUTHORS Loading commit data...
COPYING.LIB Loading commit data...
LICENSE Loading commit data...
LICENSE.OLD Loading commit data...
MAINTAINERS Loading commit data...
README Loading commit data...
VERSION Loading commit data...
aclocal.m4 Loading commit data...
configure Loading commit data...
configure.ac Loading commit data...