[Spice-devel] [PATCH qxl-wddm-dod 15/20] qxl-wddm-dod: Set VSync indication period to 200ms

Frediano Ziglio fziglio at redhat.com
Tue Mar 28 13:27:10 UTC 2017


From: "yuri.benditovich at daynix.com" <yuri.benditovich at daynix.com>

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 <yuri.benditovich at daynix.com>
---
 qxldod/QxlDod.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/qxldod/QxlDod.cpp b/qxldod/QxlDod.cpp
index efa6e41..1c18d98 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);
         }
-- 
2.9.3



More information about the Spice-devel mailing list