[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