[Spice-devel] [vd-agent-win32 v2 0/2] Add support for WDDM driver

Javier Celaya javier.celaya at flexvdi.com
Fri Feb 12 13:41:58 UTC 2016


This patch set adds support for dynamic resolution changes with the WDDM
driver on Windows >= 8. It is based on the one sent by Vadim Rozenfeld
with some improvements:

- It detects both the XDDM driver and the WDDM driver, and uses the
  correct API.
- It detects if the client is trying to set the same resolution again,
  and does nothing. This is the result of the client detecting a primary
  surface destruction/construction when the resolution changes, and
  asking for a resolution change again. This bug does not happen with
  the XDDM driver, so it may be avoidable in some other way.
- It uses an alternative method to update the list of display modes,
  that results in a nicer effect when changing the resolution. This
  method is compatible with the current driver implementation (v0.12),
  but for best results we have modified the driver to drop the previous
  method and to improve support of hardware pointers. The source can be
  found in https://github.com/flexvdi/qxl-dod, and precompiled and signed
  binaries can be downloaded from http://depot.flexvdi.com/guest-tools/.

Changes from v1:
- New types and classes have been moved from common/vdcommon.h to
  vdagent/wddm.h, since they are actually not common to both the vdagent
  and the vdservice. The code for those classes is in vdagent/wddm.cpp.
- Some improvements as suggested by Frediano Ziglio.

Javier Celaya (2):
  Detect and use the new WDDM driver
  Use CCD API to update the WDDM display modes.

 Makefile.am                |   2 +
 common/vdcommon.h          |   4 +
 vdagent/desktop_layout.cpp |  69 ++++++++++++---
 vdagent/wddm.cpp           |  76 +++++++++++++++++
 vdagent/wddm.h             | 206 +++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 345 insertions(+), 12 deletions(-)
 create mode 100644 vdagent/wddm.cpp
 create mode 100644 vdagent/wddm.h

-- 
2.4.3



More information about the Spice-devel mailing list