Raised executable priority on windows to avoid stuter, helps #25162
This commit is contained in:
parent
6a187f6395
commit
ab843b1698
@ -218,7 +218,7 @@ def configure_msvc(env, manual_msvc_config):
|
|||||||
|
|
||||||
LIBS = ['winmm', 'opengl32', 'dsound', 'kernel32', 'ole32', 'oleaut32',
|
LIBS = ['winmm', 'opengl32', 'dsound', 'kernel32', 'ole32', 'oleaut32',
|
||||||
'user32', 'gdi32', 'IPHLPAPI', 'Shlwapi', 'wsock32', 'Ws2_32',
|
'user32', 'gdi32', 'IPHLPAPI', 'Shlwapi', 'wsock32', 'Ws2_32',
|
||||||
'shell32', 'advapi32', 'dinput8', 'dxguid', 'imm32', 'bcrypt']
|
'shell32', 'advapi32', 'dinput8', 'dxguid', 'imm32', 'bcrypt','Avrt']
|
||||||
env.Append(LINKFLAGS=[p + env["LIBSUFFIX"] for p in LIBS])
|
env.Append(LINKFLAGS=[p + env["LIBSUFFIX"] for p in LIBS])
|
||||||
|
|
||||||
if manual_msvc_config:
|
if manual_msvc_config:
|
||||||
@ -329,7 +329,7 @@ def configure_mingw(env):
|
|||||||
env.Append(CCFLAGS=['-DRTAUDIO_ENABLED'])
|
env.Append(CCFLAGS=['-DRTAUDIO_ENABLED'])
|
||||||
env.Append(CCFLAGS=['-DWASAPI_ENABLED'])
|
env.Append(CCFLAGS=['-DWASAPI_ENABLED'])
|
||||||
env.Append(CCFLAGS=['-DWINVER=%s' % env['target_win_version'], '-D_WIN32_WINNT=%s' % env['target_win_version']])
|
env.Append(CCFLAGS=['-DWINVER=%s' % env['target_win_version'], '-D_WIN32_WINNT=%s' % env['target_win_version']])
|
||||||
env.Append(LIBS=['mingw32', 'opengl32', 'dsound', 'ole32', 'd3d9', 'winmm', 'gdi32', 'iphlpapi', 'shlwapi', 'wsock32', 'ws2_32', 'kernel32', 'oleaut32', 'dinput8', 'dxguid', 'ksuser', 'imm32', 'bcrypt'])
|
env.Append(LIBS=['mingw32', 'opengl32', 'dsound', 'ole32', 'd3d9', 'winmm', 'gdi32', 'iphlpapi', 'shlwapi', 'wsock32', 'ws2_32', 'kernel32', 'oleaut32', 'dinput8', 'dxguid', 'ksuser', 'imm32', 'bcrypt','avrt'])
|
||||||
|
|
||||||
env.Append(CPPFLAGS=['-DMINGW_ENABLED'])
|
env.Append(CPPFLAGS=['-DMINGW_ENABLED'])
|
||||||
|
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
#include "servers/visual/visual_server_raster.h"
|
#include "servers/visual/visual_server_raster.h"
|
||||||
#include "servers/visual/visual_server_wrap_mt.h"
|
#include "servers/visual/visual_server_wrap_mt.h"
|
||||||
#include "windows_terminal_logger.h"
|
#include "windows_terminal_logger.h"
|
||||||
|
#include <avrt.h>
|
||||||
|
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
#include <regstr.h>
|
#include <regstr.h>
|
||||||
@ -1373,6 +1374,19 @@ Error OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int
|
|||||||
|
|
||||||
set_ime_active(false);
|
set_ime_active(false);
|
||||||
|
|
||||||
|
if (!OS::get_singleton()->is_in_low_processor_usage_mode()) {
|
||||||
|
//SetPriorityClass(GetCurrentProcess(), ABOVE_NORMAL_PRIORITY_CLASS);
|
||||||
|
SetPriorityClass(GetCurrentProcess(), ABOVE_NORMAL_PRIORITY_CLASS);
|
||||||
|
DWORD index = 0;
|
||||||
|
HANDLE handle = AvSetMmThreadCharacteristics("Games", &index);
|
||||||
|
if (handle)
|
||||||
|
AvSetMmThreadPriority(handle, AVRT_PRIORITY_CRITICAL);
|
||||||
|
|
||||||
|
// This is needed to make sure that background work does not starve the main thread.
|
||||||
|
// This is only setting priority of this thread, not the whole process.
|
||||||
|
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
|
||||||
|
}
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user