From 9460db876045d13500ac622ce0ef4384e8c42e2e Mon Sep 17 00:00:00 2001 From: "yuri.benditovich@daynix.com" Date: Sat, 1 Apr 2017 19:40:34 +0300 Subject: [PATCH] qxl-wddm-dod: Set VSync indication period to 200ms Default indication period (13-17ms) from the driver to OS increases total CPU consumption during presentation operations. Reducing indication frequency to 200 ms reduces cost of this feature. Till now we do not see any negative impact of this. Signed-off-by: Yuri Benditovich Acked-by: Frediano Ziglio --- qxldod/QxlDod.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp index 7341389..aa70f39 100755 --- a/qxldod/QxlDod.cpp +++ b/qxldod/QxlDod.cpp @@ -19,6 +19,7 @@ (QXL_INTERRUPT_CURSOR) | \ (QXL_INTERRUPT_IO_CMD)) +#define VSYNC_PERIOD 200 // ms, use 0 for auto #define VSYNC_RATE 75 BOOLEAN g_bSupportVSync; @@ -5006,8 +5007,9 @@ VOID QxlDod::EnableVsync(BOOLEAN bEnable) else { LARGE_INTEGER li; - LONG period = 1000 / VSYNC_RATE; - DbgPrint(TRACE_LEVEL_WARNING, ("Enabled VSync(fired %d)\n", m_VsyncFiredCounter)); + LONG period = VSYNC_PERIOD; + if (!period) period = 1000 / VSYNC_RATE; + DbgPrint(TRACE_LEVEL_WARNING, ("Enabled VSync %d ms(fired %d)\n", period, m_VsyncFiredCounter)); li.QuadPart = -10000000 / VSYNC_RATE; KeSetTimerEx(&m_VsyncTimer, li, period, &m_VsyncTimerDpc); }