summaryrefslogtreecommitdiff
path: root/indra/llwindow
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2022-10-13 19:51:40 -0500
committerDave Parks <davep@lindenlab.com>2022-10-13 19:51:40 -0500
commitec5009d70eb0fd729126b2321b9d7d6118741573 (patch)
tree2cffe21857f9c74c775b988107147630f837392a /indra/llwindow
parent15c3c3f94d6d1b3007f3135602bf3f65dc791f57 (diff)
SL-18190 Potential fix for sapping CPU when "sleeping"
Diffstat (limited to 'indra/llwindow')
-rw-r--r--indra/llwindow/llwindowwin32.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index aadf895271..6beb874e8c 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -66,6 +66,7 @@
#include <d3d9.h>
#include <dxgi1_4.h>
+#include <timeapi.h>
// Require DirectInput version 8
#define DIRECTINPUT_VERSION 0x0800
@@ -4827,6 +4828,14 @@ void LLWindowWin32::LLWindowWin32Thread::run()
initDX();
+ //as good a place as any to up the MM timer resolution (see ms_sleep)
+ //attempt to set timer resolution to 1ms
+ TIMECAPS tc;
+ if (timeGetDevCaps(&tc, sizeof(TIMECAPS)) == TIMERR_NOERROR)
+ {
+ timeBeginPeriod(llclamp((U32) 1, tc.wPeriodMin, tc.wPeriodMax));
+ }
+
while (! getQueue().done())
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_WIN32;