Bug 895356 - [RFE] Spice: WDDM Display Only Driver for windows 10+
Summary: [RFE] Spice: WDDM Display Only Driver for windows 10+
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: Spice-qxl-wddm-dod   
(Show other bugs)
Version: 3.6.0
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ovirt-4.2.0
: ---
Assignee: Default Assignee for SPICE Bugs
QA Contact: SPICE QE bug list
URL:
Whiteboard:
Keywords: FutureFeature
Depends On:
Blocks: 1113520 815874 1134733 1441102 1465106 1478905
TreeView+ depends on / blocked
 
Reported: 2013-01-15 05:56 UTC by Shaolong Hu
Modified: 2019-04-16 14:01 UTC (History)
111 users (show)

Fixed In Version: spice-qxl-wddm-dod-0.18-1
Doc Type: Enhancement
Doc Text:
This release adds a new spice-qxl-wddm-dod package, containing a display-only-driver (DOD) for the QXL (virtual) device. It can be installed on Windows 10 virtual machines. This driver adds support for arbitrary resolution, multiple monitors, and client mouse mode.
Story Points: ---
Clone Of:
: 1134733 1478905 (view as bug list)
Environment:
Last Closed: 2018-05-15 17:59:41 UTC
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: Spice
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
code43 (31.78 KB, image/png)
2015-03-03 07:06 UTC, Todd
no flags Details
Win8 resize POC code (10.42 KB, patch)
2015-04-20 10:54 UTC, Vadim Rozenfeld
no flags Details | Diff


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2018:1531 None None None 2018-05-15 18:01 UTC
Red Hat Knowledge Base (Solution) 294843 None None None Never
Red Hat Bugzilla 895362 None None None 2019-04-14 12:10 UTC

Internal Trackers: 895362

Description Shaolong Hu 2013-01-15 05:56:44 UTC
Description of problem:
------------------------------------
There is no qxl driver for win8 now, and win7 driver in virtio-win package won't work, this will cause related test cases in qemu-kvm component failed such as s3 when we test win8 guest, for no such kind of bug in "Component: spice-qxl-driver-win Product: Red Hat Enterprise Virtualization Manager ", and we need to attach a bug id when case failed, file this bug for tracking virtio-win package.


Version-Release number of selected component (if applicable):
--------------------------------------------------------------
virtio-win-1.5.4-1.el6


How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 2 mazhang 2013-01-15 06:43:20 UTC
*** Bug 895362 has been marked as a duplicate of this bug. ***

Comment 3 Gerd Hoffmann 2013-01-15 15:50:38 UTC
Alon, I know you've worked on qxl win drivers in the past, please fill in status / plans / reassign if needed.

Shaolong, please open a new bug for the win8 s3 issue (+ assign to me) and I'll check out whenever we can do something about s3 even without qxl drivers.

Comment 4 mazhang 2013-01-16 02:24:22 UTC
(In reply to comment #3)
> Alon, I know you've worked on qxl win drivers in the past, please fill in
> status / plans / reassign if needed.
> 
> Shaolong, please open a new bug for the win8 s3 issue (+ assign to me) and
> I'll check out whenever we can do something about s3 even without qxl
> drivers.

Shaolong, as comment #3, I'll reopen Bug 895362 for win8 s3 issue and assign to Gerd.

Comment 5 Arnon Gilboa 2013-01-17 11:28:39 UTC
We have started working on WDDM qxl driver (a must for W8+), which is to be written completely from scratch, as the driver model totally changed.

Comment 6 Arnon Gilboa 2013-07-31 12:39:19 UTC
Moving to Vadim, as he is the developer of Win8 qxl display-only driver.

Comment 9 David Blechter 2014-02-13 13:35:56 UTC
The RFE for Wndows components should be handled  in RFEs of rhevm product.

Comment 10 David Blechter 2014-04-03 11:59:58 UTC
spice team is not working on the WDDM,
removing "spice" from the whiteboard

Comment 17 Marcel Wysocki 2014-06-16 13:22:46 UTC
+1

Comment 20 Lulin Fan 2014-06-20 05:23:40 UTC
+1

Comment 21 Ronen Hod 2014-08-06 09:23:24 UTC
Looks like we can have it as tech-preview in 7.1.

Comment 23 Lindsay Mathieson 2014-08-25 01:52:08 UTC
brewweb.devel.redhat.com doesn't resolve for me, even using google dns. Online dns tools can't find a record for it.

Comment 25 Vadim Rozenfeld 2014-08-25 08:59:44 UTC
(In reply to Lindsay Mathieson from comment #23)
> brewweb.devel.redhat.com doesn't resolve for me, even using google dns.
> Online dns tools can't find a record for it.

I put it on public shares, under
http://people.redhat.com/~vrozenfe/qxlwddm/qxlwddm-0.6.zip
Please be advised that it is not official, completely untested code.
Use it on your own risk.

Cheers,
Vadim.

Comment 28 Marcel Wysocki 2014-08-27 09:09:48 UTC
after upgrading to 0.6 the mouse stopped working, no cursor is visible.
this is on win2k12 r2.
sometimes when the system shuts down a cursor is visible and working for a second.

Comment 29 lijin 2014-08-27 09:29:48 UTC
test with qxlwddm-0.1-6 on win8-64 guest,guest can do S3 and resume correctly.
package info:
kernel-2.6.32-492.el6.x86_64
qemu-img-rhev-0.12.1.2-2.438.el6.x86_64
qxlwddm-0.1-6

Comment 30 Vadim Rozenfeld 2014-08-27 11:57:52 UTC
(In reply to Marcel Wysocki from comment #28)
> after upgrading to 0.6 the mouse stopped working, no cursor is visible.
> this is on win2k12 r2.
> sometimes when the system shuts down a cursor is visible and working for a
> second.

What is the qemu version?

could you also check if there is any difference between qxl and vga mode by
specifying "-global qxl-vga.revision=4" and then re-starting VM with revision=3 ?

Thanks,
Vadim.

Comment 31 Marcel Wysocki 2014-08-27 12:30:37 UTC
qemu-kvm-1.6.2-7.fc20.x86_64

i am using libvirt tho, so no idea how i would specify the other revision

Comment 33 Leonardo Dantas 2014-09-02 14:58:04 UTC
+1

Comment 34 Leonardo Dantas 2014-09-19 19:50:17 UTC
After upgrading to 0.6 in a Windows 8.1 Pro, I had the same problem (no mouse)... 

Any news? (I'm using RHEV 3.2).

Comment 35 Vadim Rozenfeld 2014-09-20 04:26:43 UTC
(In reply to Leonardo Dantas from comment #34)
> After upgrading to 0.6 in a Windows 8.1 Pro, I had the same problem (no
> mouse)... 
> 
> Any news? (I'm using RHEV 3.2).

Do you have it running over SPICE? If so, could you please disable vdagent and give it another shot?

Thanks,
Vadim.

Comment 36 Leonardo Dantas 2014-09-29 18:14:57 UTC
How can I disable vdagent in a RHEV environment?

Other error in other guest: 

In a Windows 2012 R2 64 bits, the driver could not be installed. The errors are in this screenshots:
 
http://postimg.org/image/jv4y0djvz (choice of driver)

http://postimg.org/image/4axk9u9rj (error)


"Driver not projected for this platform"

Comment 37 Vadim Rozenfeld 2014-10-01 11:36:52 UTC
(In reply to Leonardo Dantas from comment #36)
> How can I disable vdagent in a RHEV environment?
It's a Windows service. You can stop or disable it from the Service Control Manager.
> 
> Other error in other guest: 
> 
> In a Windows 2012 R2 64 bits, the driver could not be installed. The errors
> are in this screenshots:
>  
> http://postimg.org/image/jv4y0djvz (choice of driver)
> 
> http://postimg.org/image/4axk9u9rj (error)
> 
> 
> "Driver not projected for this platform"
You are trying to install a 64-bit version, from x64 sub-directory, right?
Can you please post setupapi.dev.log file?
Thanks,
Vadim.

Comment 38 Leonardo Dantas 2014-10-01 12:59:35 UTC
After forcing the removal of the installed driver and install all updates from windows update, worked for me (windows 2012)! :) thanks! 

Any new version for test?

Comment 39 Vadim Rozenfeld 2014-10-02 10:08:34 UTC
(In reply to Leonardo Dantas from comment #38)
> After forcing the removal of the installed driver and install all updates
> from windows update, worked for me (windows 2012)! :) thanks! 
> 
> Any new version for test?

Not at the moment,
but there are several bugs that are waiting to be fixed asap.

Best regards,
Vadim.

Comment 45 Bjoern Teipel 2015-01-14 15:23:21 UTC
So this driver version 0.6-1 flips actually my entire display at 180 degrees and leaves mouse cursor traces behind. Am I the only one who has this issue ?
I did start test it using the cloudbase windows eval image http://www.cloudbase.it/ws2012r2/ which does not come with any QXL driver.

Comment 46 yxu 2015-01-24 07:40:58 UTC
(In reply to bjoern from comment #45)
> So this driver version 0.6-1 flips actually my entire display at 180 degrees
> and leaves mouse cursor traces behind. Am I the only one who has this issue ?
> I did start test it using the cloudbase windows eval image
> http://www.cloudbase.it/ws2012r2/ which does not come with any QXL driver.

Ah...

You are not alone actually..

This version of qxl wddm driver did not work so well. 

Is it still under development ?

Comment 47 Vadim Rozenfeld 2015-01-24 23:09:30 UTC
Flipping at 180 degrees is something new to me. Never seen it before. Will try to figure out why it happens. 
Regarding to mouse cursor - do you have vdagent
running on your system? If so, then it probably needs to be disable, because 0.6 doesn't work well with spice. We are trying to address spice compatibility
issues in the following build.

Vadim.

Comment 48 Lindsay Mathieson 2015-02-04 04:54:32 UTC
Would it be useful to test the driver with Windows 10?

Comment 49 Mike Cao 2015-02-04 05:55:57 UTC
(In reply to Lindsay Mathieson from comment #48)
> Would it be useful to test the driver with Windows 10?

Windows 10 is still in beta stage ,We will consider support it once windows 10 and windows server vnext is GA

Mike

Comment 50 Colin Coe 2015-02-04 06:32:44 UTC
Sorry but I think that is the wrong answer.

Win8 escaped in October 2012.  It's now Feb 2015.  Respectfully, 2+ years to release a video driver is not acceptable.  Are we to wait 2 more years for the Win10 driver?  Truly (RHEV) supported Windows OS are now N-2 (Win7/Server 2008R2)

I realize that writing drivers is far from trivial but RH needs to lift here.

Win8 may not have had much take up but Server 2012 has. Not having decent console screen resolution in RHEV sucks.

Other virtualization providers have the drivers ready for the product GA, or very shortly after.

Comment 51 Vadim Rozenfeld 2015-02-04 09:01:22 UTC
(In reply to Lindsay Mathieson from comment #48)
> Would it be useful to test the driver with Windows 10?

It should work on Win10. Tested it once to see that it can be installed without crash. However, the driver doesn't provide any Win10 specific functionally.  
Vadim.

Comment 52 Phil Armstrong 2015-02-26 14:00:37 UTC
Just to add that the drivers Vadim released at the beginning of the month (at http://people.redhat.com/~vrozenfe/qxlwddm/qxlwddm-0.7.zip ) work fine on the Tech Preview of Windows 10 for me. No crashes or weird behaviour so far after a couple of hours of poking around.

Well done! When can we expect an 'official' release do you think?

Comment 53 Matthew Gabeler-Lee 2015-02-27 01:58:25 UTC
I tried the 0.7 release with my Windows 8.1 VM, and on installation, the screen flashed a bunch (expected), but then windows told me the driver failed to start.  The device manager shows "Windows has stopped this device because it has reported problems. (Code 43)".  Oddly, however, there's nothing in the event log about it.

I'd previously installed the 0.6 version and then uninstalled it after having problems with it.

After rebooting, it shows the same error in Device Manager.

Is there anything I can do to try to find more about what the error is to help fix it?

Comment 54 Mike Cao 2015-02-27 05:53:00 UTC
QXL driver is not belongs to virtio-win component.
In order to speed up the process ,Moving the bug to the rhevm  product.
Any concern,pls let me know.

Thanks,
Mike

Comment 55 Vadim Rozenfeld 2015-03-01 09:04:06 UTC
(In reply to Phil Armstrong from comment #52)
> Just to add that the drivers Vadim released at the beginning of the month
> (at http://people.redhat.com/~vrozenfe/qxlwddm/qxlwddm-0.7.zip ) work fine
> on the Tech Preview of Windows 10 for me. No crashes or weird behaviour so
> far after a couple of hours of poking around.
> 
> Well done! When can we expect an 'official' release do you think?

Technically we should be able to release more or less SPICE-compatible 
driver in next few  mounts. But I have no idea about which team and when 
will WHQL test the driver.

Comment 56 Vadim Rozenfeld 2015-03-01 09:09:52 UTC
(In reply to Matthew Gabeler-Lee from comment #53)
> I tried the 0.7 release with my Windows 8.1 VM, and on installation, the
> screen flashed a bunch (expected), but then windows told me the driver
> failed to start.  The device manager shows "Windows has stopped this device
> because it has reported problems. (Code 43)".  Oddly, however, there's
> nothing in the event log about it.
> 
> I'd previously installed the 0.6 version and then uninstalled it after
> having problems with it.
> 
> After rebooting, it shows the same error in Device Manager.
> 
> Is there anything I can do to try to find more about what the error is to
> help fix it?

Can you try completely removing (including the binary) the previous version of QXL driver, run HW scan (you should see Microsoft BDD driver installed after completion of this stage), and then update BDD driver with the new version of 
QXL DOD driver?

Thanks,
Vadim.

Comment 57 Alessandro Nardecchia 2015-03-02 15:45:30 UTC
Dear Vadim i can confirm installation fails on a fresh install of Windows 8.1 Pro 64. (qxl-wddm 0.7)

On loading driver system return code: 43 failing to install driver.

Same issue on Windows Server 2012. :(

No hardware logs was present on event manager.

Alessandro

Comment 58 Matthew Gabeler-Lee 2015-03-02 16:16:10 UTC
(In reply to Vadim Rozenfeld from comment #56)
> (In reply to Matthew Gabeler-Lee from comment #53)
> > Is there anything I can do to try to find more about what the error is to
> > help fix it?
> 
> Can you try completely removing (including the binary) the previous version
> of QXL driver, run HW scan (you should see Microsoft BDD driver installed
> after completion of this stage), and then update BDD driver with the new
> version of QXL DOD driver?

OK ... did the uninstall from device manager, ran the hw scan as you noted, and confirmed the presence of the "Microsoft Basic Display Adapter".  I rummaged about in the windows directory to confirm there weren't any leftovers hanging around.  There was a copy of the current version of qxldod in %system32%\drivers and another copy in the lastgood.tmp folder, I deleted both.

I also noticed an older copy of the qxl driver (probably the 0.6 one?) that was not the dod, but just qxl.sys and qxldd.sys.  Wiped those too.

Rebooted after that to try to ensure a clean slate.

Then I tried to re-install the drivers using the right-click update drivers, pointing to the unzipped qxlwddm-0.7\Win8\x64 folder.  Unfortunately I got the same error as before -- display flashed, temporarily showing aero-ish window decorations, and the driver update wizard showed the Code 43 error again.

Might this have to do with what version of seabios/vgabios qemu is using?  Or the amount of video ram assigned?  libvirt says there is 64MB assigned.  My vm is x64, if that matters.  Is there any way to enable driver debug logging (environment variables, etc.) to dig into this?

Comment 59 Vadim Rozenfeld 2015-03-03 05:02:45 UTC
(In reply to Alessandro Nardecchia from comment #57)
> Dear Vadim i can confirm installation fails on a fresh install of Windows
> 8.1 Pro 64. (qxl-wddm 0.7)
> 
> On loading driver system return code: 43 failing to install driver.
> 

Hello Alessandro,
Technically, qxldod installation process is absolutely the same as for kmdod sample, written by Microsoft.
It's what they say about kmdod installation (https://code.msdn.microsoft.com/windowshardware/Kernel-mode-display-only-49adea58) :

"If the current display driver is not a WDDM 1.2 compliant driver, the sample driver might fail to install, with error code 43 displayed. The KMDOD driver is actually installed, but it cannot be started. The workaround for this issue is to switch to the Microsoft Basic Display Adapter Driver before installing the KMDOD sample driver, or simply to reboot your system after installing the KMDOD sample."

If it still doesn't work for you, please post the following information:
- qemu and spice versions,
- qemu command line,
- output from "info pci" command.

Thanks,
Vadim.

> Same issue on Windows Server 2012. :(
> 
> No hardware logs was present on event manager.
> 
> Alessandro

Comment 60 Matthew Gabeler-Lee 2015-03-03 05:22:54 UTC
Background context: I'm using Debian ...

(In reply to Vadim Rozenfeld from comment #59)
> or simply to reboot your system after installing

This doesn't do anything for me, the QXL driver still shows in device manager with the yellow triangle and the Code 43 error.

> If it still doesn't work for you, please post the following information:
> - qemu and spice versions,
qemu-system-x86:amd64/testing 1:2.1+dfsg-11
libspice-server1:amd64/testing 0.12.5-1+b1

Possibly also important:
seabios:all/testing 1.7.5-1
libvirt-daemon-system:amd64/testing 1.2.9-9
(the rest of libvirt is the same version, naturally)

> - qemu command line,
This one is a doozy due to libvirt ... I've anonymized (xx or xyzzy) a few values out of random paranoia ...

qemu-system-x86_64 -enable-kvm -name win8real -S -machine pc-1.1,accel=kvm,usb=off -cpu Westmere,+rdtscp,+pdpe1gb,+pdcm,+xtpr,+tm2,+est,+vmx,+ds_cpl,+monitor,+dtes64,+pclmuldq,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xyzzy.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -boot order=cda,menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/xx/vms/xyzzy/xyzzy.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=writeback -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=xx:xx:xx:xx:xx:xx,bus=pci.0,addr=0x7 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -chardev socket,id=charchannel1,path=/var/lib/libvirt/qemu/channel/target/win8real.org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=org.qemu.guest_agent.0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x3 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -msg timestamp=on

> - output from "info pci" command.
Sorry if I'm being dumb, but where do I issue this?  Windows 8.1 at least doesn't have an "info" command at the command line.  Does this go to the qemu console?  If so, how do I issue that through libvirt?

Just for giggles, I tried running "net start qxldod" from an elevated command prompt, and that said that the service started, but nothing changed in device manager, including after another reboot.

I also tried disabling & re-enabling the device, and the re-enable caused the same screen flash as the initial install (including the momentary Aero-ish view), but didn't clear the error.

Comment 61 Vadim Rozenfeld 2015-03-03 05:27:54 UTC
(In reply to Matthew Gabeler-Lee from comment #58)
(In reply to Matthew Gabeler-Lee from comment #58)
> (In reply to Vadim Rozenfeld from comment #56)
> > (In reply to Matthew Gabeler-Lee from comment #53)
> > > Is there anything I can do to try to find more about what the error is to
> > > help fix it?
> > 
> > Can you try completely removing (including the binary) the previous version
> > of QXL driver, run HW scan (you should see Microsoft BDD driver installed
> > after completion of this stage), and then update BDD driver with the new
> > version of QXL DOD driver?
> 
> OK ... did the uninstall from device manager, ran the hw scan as you noted,
> and confirmed the presence of the "Microsoft Basic Display Adapter".  I
> rummaged about in the windows directory to confirm there weren't any
> leftovers hanging around.  There was a copy of the current version of qxldod
> in %system32%\drivers and another copy in the lastgood.tmp folder, I deleted
> both.
> 

Microsoft has "Delay the diver software for device" check-box to "Confirm Device Uninstall" page for doing that automatically :)

> I also noticed an older copy of the qxl driver (probably the 0.6 one?) that
> was not the dod, but just qxl.sys and qxldd.sys.  Wiped those too.
> 

They are both belong to the old, XP style, qxl display driver which cannot be installed on Windows 8 or later OSes

> Rebooted after that to try to ensure a clean slate.
> 
> Then I tried to re-install the drivers using the right-click update drivers,
> pointing to the unzipped qxlwddm-0.7\Win8\x64 folder.  Unfortunately I got
> the same error as before -- display flashed, temporarily showing aero-ish
> window decorations, and the driver update wizard showed the Code 43 error
> again.
> 
> Might this have to do with what version of seabios/vgabios qemu is using? 
> Or the amount of video ram assigned?  libvirt says there is 64MB assigned. 
> My vm is x64, if that matters.  Is there any way to enable driver debug
> logging (environment variables, etc.) to dig into this?

First of all please post the same information as I mentioned in the previous 
comment - qemu & spice versions, qemu command line, and output from "info pci"
Regarding to logs, you can rebuild the driver with log option enabled. It will be easier if you can reproduce the problem on 32-bit OS (say Win8 or Win8.1),
otherwise you need do deal with all that signing stuff, but it is not a bug problem if you know what to do. In any case, if you really want to dig into this problem and need some help - don't hesitate to ping me by email vrozenfe_at_redhat_dot_com.
Best regards,
Vadim.

Comment 62 Vadim Rozenfeld 2015-03-03 05:38:29 UTC
(In reply to Matthew Gabeler-Lee from comment #60)
> Background context: I'm using Debian ...
> 
> (In reply to Vadim Rozenfeld from comment #59)
> > or simply to reboot your system after installing
> 
> This doesn't do anything for me, the QXL driver still shows in device
> manager with the yellow triangle and the Code 43 error.
> 
> > If it still doesn't work for you, please post the following information:
> > - qemu and spice versions,
> qemu-system-x86:amd64/testing 1:2.1+dfsg-11
> libspice-server1:amd64/testing 0.12.5-1+b1
> 
> Possibly also important:
> seabios:all/testing 1.7.5-1
> libvirt-daemon-system:amd64/testing 1.2.9-9
> (the rest of libvirt is the same version, naturally)
> 
> > - qemu command line,
> This one is a doozy due to libvirt ... I've anonymized (xx or xyzzy) a few
> values out of random paranoia ...
> 
> qemu-system-x86_64 -enable-kvm -name win8real -S -machine
> pc-1.1,accel=kvm,usb=off -cpu
> Westmere,+rdtscp,+pdpe1gb,+pdcm,+xtpr,+tm2,+est,+vmx,+ds_cpl,+monitor,
> +dtes64,+pclmuldq,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme -m 2048 -realtime
> mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid
> xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -no-user-config -nodefaults -chardev
> socket,id=charmonitor,path=/var/lib/libvirt/qemu/xyzzy.monitor,server,nowait
> -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime
> -no-shutdown -boot order=cda,menu=on,strict=on -device
> piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device
> virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive
> file=/xx/vms/xyzzy/xyzzy.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,
> cache=writeback -device
> virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,
> id=virtio-disk0 -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw
> -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev
> tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device
> virtio-net-pci,netdev=hostnet0,id=net0,mac=xx:xx:xx:xx:xx:xx,bus=pci.0,
> addr=0x7 -chardev spicevmc,id=charchannel0,name=vdagent -device
> virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,
> name=com.redhat.spice.0 -chardev
> socket,id=charchannel1,path=/var/lib/libvirt/qemu/channel/target/win8real.
> org.qemu.guest_agent.0,server,nowait -device
> virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,
> name=org.qemu.guest_agent.0 -spice
> port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device
> qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2
> -device intel-hda,id=sound0,bus=pci.0,addr=0x3 -device
> hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev
> spicevmc,id=charredir0,name=usbredir -device
> usb-redir,chardev=charredir0,id=redir0 -chardev
> spicevmc,id=charredir1,name=usbredir -device
> usb-redir,chardev=charredir1,id=redir1 -chardev
> spicevmc,id=charredir2,name=usbredir -device
> usb-redir,chardev=charredir2,id=redir2 -device
> virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -msg timestamp=on
> 
> > - output from "info pci" command.
> Sorry if I'm being dumb, but where do I issue this?  Windows 8.1 at least
> doesn't have an "info" command at the command line.  Does this go to the
> qemu console?  If so, how do I issue that through libvirt?

From the qemu monitor. IIUC, you have qemu monitor rendered through 
-chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xyzzy.monitor


You must be able to connect to that socket with telnet, netcat, or whatever you like more and issue "info pci" command to see pci resources assigned to devices.
> Just for giggles, I tried running "net start qxldod" from an elevated
> command prompt, and that said that the service started, but nothing changed
> in device manager, including after another reboot.
> 
> I also tried disabling & re-enabling the device, and the re-enable caused
> the same screen flash as the initial install (including the momentary
> Aero-ish view), but didn't clear the error.

Comment 63 Matthew Gabeler-Lee 2015-03-03 05:43:11 UTC
(In reply to Vadim Rozenfeld from comment #61)
> First of all please post the same information as I mentioned in the previous 
> comment - qemu & spice versions, qemu command line, and output from "info
> pci"

Done above, info pci is here now that I figured out how to do it:
$ virsh -c qemu:///system qemu-monitor-command --domain xyzzy --hmp "info pci"
  Bus  0, device   0, function 0:
    Host bridge: PCI device 8086:1237
      id ""
  Bus  0, device   1, function 0:
    ISA bridge: PCI device 8086:7000
      id ""
  Bus  0, device   1, function 1:
    IDE controller: PCI device 8086:7010
      BAR4: I/O at 0xc0e0 [0xc0ef].
      id ""
  Bus  0, device   1, function 2:
    USB controller: PCI device 8086:7020
      IRQ 11.
      BAR4: I/O at 0xc040 [0xc05f].
      id "usb"
  Bus  0, device   1, function 3:
    Bridge: PCI device 8086:7113
      IRQ 9.
      id ""
  Bus  0, device   2, function 0:
    VGA controller: PCI device 1b36:0100
      IRQ 5.
      BAR0: 32 bit memory at 0xf4000000 [0xf7ffffff].
      BAR1: 32 bit memory at 0xf8000000 [0xfbffffff].
      BAR2: 32 bit memory at 0xfc034000 [0xfc035fff].
      BAR3: I/O at 0xc060 [0xc07f].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id "video0"
  Bus  0, device   3, function 0:
    Audio controller: PCI device 8086:2668
      IRQ 5.
      BAR0: 32 bit memory at 0xfc030000 [0xfc033fff].
      id "sound0"
  Bus  0, device   4, function 0:
    Class 1920: PCI device 1af4:1003
      IRQ 0.
      BAR0: I/O at 0xc080 [0xc09f].
      BAR1: 32 bit memory at 0xfc036000 [0xfc036fff].
      id "virtio-serial0"
  Bus  0, device   5, function 0:
    SCSI controller: PCI device 1af4:1001
      IRQ 0.
      BAR0: I/O at 0xc000 [0xc03f].
      BAR1: 32 bit memory at 0xfc037000 [0xfc037fff].
      id "virtio-disk0"
  Bus  0, device   6, function 0:
    Class 0255: PCI device 1af4:1002
      IRQ 5.
      BAR0: I/O at 0xc0a0 [0xc0bf].
      id "balloon0"
  Bus  0, device   7, function 0:
    Ethernet controller: PCI device 1af4:1000
      IRQ 0.
      BAR0: I/O at 0xc0c0 [0xc0df].
      BAR1: 32 bit memory at 0xfc038000 [0xfc038fff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0001fffe].
      id "net0"


> Regarding to logs, you can rebuild the driver with log option enabled. It
> will be easier if you can reproduce the problem on 32-bit OS (say Win8 or
> Win8.1),
> otherwise you need do deal with all that signing stuff, but it is not a bug
> problem if you know what to do.

Sadly I don't have a windows development environment around any more, and I don't see myself having the free time to set one up in the immediate future.  Can the code at least be built with the free versions of VS (used to be called Express, I guess it's Community now)?

I don't have a license key or an install image for anything other than Windows 8 x64, so if I do go this route I guess I'll have to sort out the fake signing stuff.  It looks like there's info on that on the KMDOD sample page.

If you / someone else trust-worthy can build a version with the logging enabled, the steps for allowing the test signed driver to run look straight forward enough I should be able to install it and collect the log data.

Comment 64 Todd 2015-03-03 05:49:03 UTC
What is the best place to download this thing for testing?

Comment 65 Vadim Rozenfeld 2015-03-03 06:28:46 UTC
(In reply to Matthew Gabeler-Lee from comment #63)
> (In reply to Vadim Rozenfeld from comment #61)
> > First of all please post the same information as I mentioned in the previous 
> > comment - qemu & spice versions, qemu command line, and output from "info
> > pci"
> 
> Done above, info pci is here now that I figured out how to do it:
> $ virsh -c qemu:///system qemu-monitor-command --domain xyzzy --hmp "info
> pci"
>   Bus  0, device   0, function 0:
>     Host bridge: PCI device 8086:1237
>       id ""
>   Bus  0, device   1, function 0:
>     ISA bridge: PCI device 8086:7000
>       id ""
>   Bus  0, device   1, function 1:
>     IDE controller: PCI device 8086:7010
>       BAR4: I/O at 0xc0e0 [0xc0ef].
>       id ""
>   Bus  0, device   1, function 2:
>     USB controller: PCI device 8086:7020
>       IRQ 11.
>       BAR4: I/O at 0xc040 [0xc05f].
>       id "usb"
>   Bus  0, device   1, function 3:
>     Bridge: PCI device 8086:7113
>       IRQ 9.
>       id ""
>   Bus  0, device   2, function 0:
>     VGA controller: PCI device 1b36:0100
>       IRQ 5.
>       BAR0: 32 bit memory at 0xf4000000 [0xf7ffffff].
>       BAR1: 32 bit memory at 0xf8000000 [0xfbffffff].
>       BAR2: 32 bit memory at 0xfc034000 [0xfc035fff].
>       BAR3: I/O at 0xc060 [0xc07f].
>       BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
>       id "video0"
>   Bus  0, device   3, function 0:
>     Audio controller: PCI device 8086:2668
>       IRQ 5.
>       BAR0: 32 bit memory at 0xfc030000 [0xfc033fff].
>       id "sound0"
>   Bus  0, device   4, function 0:
>     Class 1920: PCI device 1af4:1003
>       IRQ 0.
>       BAR0: I/O at 0xc080 [0xc09f].
>       BAR1: 32 bit memory at 0xfc036000 [0xfc036fff].
>       id "virtio-serial0"
>   Bus  0, device   5, function 0:
>     SCSI controller: PCI device 1af4:1001
>       IRQ 0.
>       BAR0: I/O at 0xc000 [0xc03f].
>       BAR1: 32 bit memory at 0xfc037000 [0xfc037fff].
>       id "virtio-disk0"
>   Bus  0, device   6, function 0:
>     Class 0255: PCI device 1af4:1002
>       IRQ 5.
>       BAR0: I/O at 0xc0a0 [0xc0bf].
>       id "balloon0"
>   Bus  0, device   7, function 0:
>     Ethernet controller: PCI device 1af4:1000
>       IRQ 0.
>       BAR0: I/O at 0xc0c0 [0xc0df].
>       BAR1: 32 bit memory at 0xfc038000 [0xfc038fff].
>       BAR6: 32 bit memory at 0xffffffffffffffff [0x0001fffe].
>       id "net0"
> 

Thanks,
Everything looks good here.

> 
> > Regarding to logs, you can rebuild the driver with log option enabled. It
> > will be easier if you can reproduce the problem on 32-bit OS (say Win8 or
> > Win8.1),
> > otherwise you need do deal with all that signing stuff, but it is not a bug
> > problem if you know what to do.
> 
> Sadly I don't have a windows development environment around any more, and I
> don't see myself having the free time to set one up in the immediate future.
> Can the code at least be built with the free versions of VS (used to be
> called Express, I guess it's Community now)?

You will need WDK 8.1 & VS 2013. Can get it for free visiting the following link
https://msdn.microsoft.com/en-us/windows/hardware/gg454513.aspx

> 
> I don't have a license key or an install image for anything other than
> Windows 8 x64, so if I do go this route I guess I'll have to sort out the
> fake signing stuff.  It looks like there's info on that on the KMDOD sample
> page.
> 
> If you / someone else trust-worthy can build a version with the logging
> enabled, the steps for allowing the test signed driver to run look straight
> forward enough I should be able to install it and collect the log data.

I will check what I can do.

Comment 66 Vadim Rozenfeld 2015-03-03 06:33:27 UTC
(In reply to Todd from comment #64)
> What is the best place to download this thing for testing?


binaries: 
http://people.redhat.com/~vrozenfe/qxlwddm/
code:
https://github.com/vrozenfe/qxl-dod

Comment 67 Todd 2015-03-03 07:06:03 UTC
Created attachment 997351 [details]
code43

Rats! I am also getting code 43 when trying to install qxlwddm-0.7 into W8.1 x64 in place of "Microsoft Basic Display Adapter".  I will attach a screen shot.

Comment 68 Simone Caronni 2015-03-03 08:04:08 UTC
Just some feedback from personal experience.

The 0.7 driver on Windows 8.1 x64 was not installing for me at all; the screen would flash a second and then switch to black, leaving no choice but to reboot. The machine did not hang though.

After reboot, the driver was not installed.

Today, after applying nearly 2gb of Windows updates and rebooting, I found the driver properly installed on boot. Performance is far from the Windows 7 driver I've been using so far; it feels a bit sluggish.

Comment 69 Alessandro Nardecchia 2015-03-03 12:11:46 UTC
(In reply to Vadim Rozenfeld from comment #59)
> (In reply to Alessandro Nardecchia from comment #57)
> > Dear Vadim i can confirm installation fails on a fresh install of Windows
> > 8.1 Pro 64. (qxl-wddm 0.7)
> > 
> > On loading driver system return code: 43 failing to install driver.
> > 
> 
> Hello Alessandro,
> Technically, qxldod installation process is absolutely the same as for kmdod
> sample, written by Microsoft.
> It's what they say about kmdod installation
> (https://code.msdn.microsoft.com/windowshardware/Kernel-mode-display-only-
> 49adea58) :
> 
> "If the current display driver is not a WDDM 1.2 compliant driver, the
> sample driver might fail to install, with error code 43 displayed. The KMDOD
> driver is actually installed, but it cannot be started. The workaround for
> this issue is to switch to the Microsoft Basic Display Adapter Driver before
> installing the KMDOD sample driver, or simply to reboot your system after
> installing the KMDOD sample."
> 
> If it still doesn't work for you, please post the following information:
> - qemu and spice versions,
> - qemu command line,
> - output from "info pci" command.
> 
> Thanks,
> Vadim.
> 
> > Same issue on Windows Server 2012. :(
> > 
> > No hardware logs was present on event manager.
> > 
> > Alessandro

Tried Windows TESTSIGNING mode ON

1) Removed all previous drivers.
2) Successfully installed base Microsoft display adapter. 
3) Update with qxl driver but same issue ( WTF? :D ) code 43.

Even tried with all windows updates... same result. :(

My system.

Ubuntu 14.04 server: (Kernel: 3.13.0-46-generic )
QEMU: QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.10)

QEMU COMMAND
"""
qemu-system-x86_64 -enable-kvm -name PC-test_11 -S -machine pc-1.1,accel=kvm,usb=off -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid bc9e0525-f4d8-4d50-9317-ffcb42b0b4df -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/PC-test_11.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x8.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x8 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x8.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x8.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/opt/semplice/storage/user/hdd_test_55_11.vdi,if=none,id=drive-ide0-0-0,format=qcow2,cache=none,aio=native -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=24,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=00:16:3e:70:17:50,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=6007,addr=0.0.0.0,image-compression=off,playback-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=3 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=4 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2,bus=usb.0,port=5 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,chardev=charredir3,id=redir3,bus=usb.0,port=6 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
"""

Spice Server Version: 0.12.4-0nocelt2

Info PCI:

"""
Bus  0, device   0, function 0:
    Host bridge: PCI device 8086:1237
      id ""
  Bus  0, device   1, function 0:
    ISA bridge: PCI device 8086:7000
      id ""
  Bus  0, device   1, function 1:
    IDE controller: PCI device 8086:7010
      BAR4: I/O at 0xc100 [0xc10f].
      id ""
  Bus  0, device   1, function 3:
    Bridge: PCI device 8086:7113
      IRQ 9.
      id ""
  Bus  0, device   2, function 0:
    VGA controller: PCI device 1b36:0100
      IRQ 11.
      BAR0: 32 bit memory at 0xf4000000 [0xf7ffffff].
      BAR1: 32 bit memory at 0xf8000000 [0xfbffffff].
      BAR2: 32 bit memory at 0xfc054000 [0xfc055fff].
      BAR3: I/O at 0xc040 [0xc05f].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id "video0"
  Bus  0, device   3, function 0:
    Ethernet controller: PCI device 8086:100e
      IRQ 10.
      BAR0: 32 bit memory at 0xfc000000 [0xfc01ffff].
      BAR1: I/O at 0xc000 [0xc03f].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0001fffe].
      id "net0"
  Bus  0, device   4, function 0:
    Audio controller: PCI device 8086:2668
      IRQ 10.
      BAR0: 32 bit memory at 0xfc050000 [0xfc053fff].
      id "sound0"
  Bus  0, device   5, function 0:
    Class 1920: PCI device 1af4:1003
      IRQ 0.
      BAR0: I/O at 0xc060 [0xc07f].
      BAR1: 32 bit memory at 0xfc056000 [0xfc056fff].
      id "virtio-serial0"
  Bus  0, device   6, function 0:
    Class 0255: PCI device 1af4:1002
      IRQ 11.
      BAR0: I/O at 0xc080 [0xc09f].
      id "balloon0"
  Bus  0, device   8, function 0:
    USB controller: PCI device 8086:2934
      IRQ 10.
      BAR4: I/O at 0xc0a0 [0xc0bf].
      id ""
  Bus  0, device   8, function 1:
    USB controller: PCI device 8086:2935
      IRQ 5.
      BAR4: I/O at 0xc0c0 [0xc0df].
      id ""
  Bus  0, device   8, function 2:
    USB controller: PCI device 8086:2936
      IRQ 11.
      BAR4: I/O at 0xc0e0 [0xc0ff].
      id ""
  Bus  0, device   8, function 7:
    USB controller: PCI device 8086:293a
      IRQ 10.
      BAR0: 32 bit memory at 0xfc057000 [0xfc057fff].
      id "usb"
"""

Thanks for help ;)

Comment 70 bertaudmarc 2015-03-15 15:53:59 UTC
Hello,
I am newbie and would like to check the driver on my ws2012.
Could you describe how to install the driver.
I tried to change the driver of the "microsoft basic display adapter" in the Device Manager but I think that is not the correct procedure.
Thank you,

Comment 71 bertaudmarc 2015-03-15 17:10:28 UTC
Hello again,
I tried this from the Windows Powershell: pnputil -i -a qxldod.inf
No errors ! but I don't see in the device manager the consequences.
I shutdowned ws2012, I changed cirrus driver to qxl driver and vnc to spice.
I restarted ws2012: unable to read from monitor

Comment 72 Martin 2015-03-16 13:16:31 UTC
All,
I can confirm that the driver works on two of my Windows 8.1 x64 VMs (centos 6.5 qemu-kvm). However there are several things to mention:

The driver that works is http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip
qxlwddm-0.7 did NOT work for me. Steps:

Started the VM with Display VNC and video VGA.
Installed the driver with command: pnputil -i -a qxldod.inf
Shut down the VM and configured Display SPICE and video QXL
Restarted the VM and updated driver for Microsoft Basic Display Adapter with qxldod.inf

Worked perfect on one VM. On the other PC driver installation also worked but the available display resolutions were very limited. I checked the section 'details' of 'QXL KMDOD Properties' and saw that Property Hardware Ids showed entry:
PCI\VEN_1B36&DEV_0100&SUBSYS_11001AF4&REV_03
on the other VM it was
PCI\VEN_1B36&DEV_0100&SUBSYS_11001AF4&REV_04

So I again restarted the VM with Display VNC and video VGA, enabled display of hidden devices via cmd:
Set devmgr_show_nonpresent_devices=1
Devmgmt.msc
Show hidden devices

Uninstalled the previous driver completely
Removed it from the driver store, see https://technet.microsoft.com/en-us/library/cc730875.aspx

Reinstalled the same driver and voila all resolutions are available now. I guess the cause for the issue was that I initially edited the xml of the VM with libvirt and inserted <model type='qxl' ram='65536' vram='18432' heads='1' revision='4'/>

Hope this helps!
Martin

Comment 73 Vadim Rozenfeld 2015-03-17 06:58:44 UTC
(In reply to Martin from comment #72)
> All,
> I can confirm that the driver works on two of my Windows 8.1 x64 VMs (centos
> 6.5 qemu-kvm). However there are several things to mention:
> 
> The driver that works is
> http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip
> qxlwddm-0.7 did NOT work for me. Steps:
> 
> Started the VM with Display VNC and video VGA.
> Installed the driver with command: pnputil -i -a qxldod.inf
> Shut down the VM and configured Display SPICE and video QXL
> Restarted the VM and updated driver for Microsoft Basic Display Adapter with
> qxldod.inf
> 
> Worked perfect on one VM. On the other PC driver installation also worked
> but the available display resolutions were very limited. I checked the
> section 'details' of 'QXL KMDOD Properties' and saw that Property Hardware
> Ids showed entry:
> PCI\VEN_1B36&DEV_0100&SUBSYS_11001AF4&REV_03
> on the other VM it was
> PCI\VEN_1B36&DEV_0100&SUBSYS_11001AF4&REV_04
> 

Thank you, Martin.

Juts let me put my 2 cents in.

Revision id is a very important parameter for qxldod. Technically, there are
two different drivers combined into the same binary. One of them (VGA-Mode) utilizes the standard VGA interface - Int10 BIOS call, while the other one (QXL-mode) built on top of QXL interface. It's way the supported resolutions list can (and probably will) be different, depending on in which mode the driver is running. Changing Revision Id is the way to switch between these two modes - rev_04 activates QXL mode, while rev_03 switches it back to VGA mode. Switch can be done with the following parameter "-global qxl-vga.revision=x", where x can be 3 or 4. Please, be advised to do the following things:
- reset the current display resolution to 1024x768;
- shutdown the VM;
- change the revision id;
- start VM. at this point we can see a black screen instead of the normal Windows GUI. If it happens - go to the qemu system monitor and initiate the system restart by executing "system_reset" command.

One more thing - we do use this driver a lot mostly for WHQL testing purpose,
but now we started to integrate it with spice. And usually we don't see any installation problems, BUT - we use it for VMs running on top of RHEL7.1. 
I personally, do all my development and testing using more or less recent upstream qemu/qemu-kvm. So, we can have all kind of backward compatibility problems. Being honest, I'm just not sure we will have enough time to address all of them.

Best regards,
Vadim.


> So I again restarted the VM with Display VNC and video VGA, enabled display
> of hidden devices via cmd:
> Set devmgr_show_nonpresent_devices=1
> Devmgmt.msc
> Show hidden devices
> 
> Uninstalled the previous driver completely
> Removed it from the driver store, see
> https://technet.microsoft.com/en-us/library/cc730875.aspx
> 
> Reinstalled the same driver and voila all resolutions are available now. I
> guess the cause for the issue was that I initially edited the xml of the VM
> with libvirt and inserted <model type='qxl' ram='65536' vram='18432'
> heads='1' revision='4'/>
> 
> Hope this helps!
> Martin

Comment 75 David Blechter 2015-03-30 21:52:36 UTC
 Moving it back to the RFEs component, and changed the title of this RFE, as it is focused on the WDDM DOD only.

Comment 76 Martin 2015-03-31 11:59:41 UTC
Vadim,
thank you, very helpful learning something new every day. As I really hate the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be able to use qxlwddm-0.7.zip...

Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker around with multi monitor setup. Right?

For Windows versions <8 or <2012 this works perfect if I perform the following steps, Centos 6.5 (maybe this helps others):

1. Update qxl driver at the Windows VM
2. Copy vdagent.exe and vdservice.exe to a directory on the client PC
3. Install vdiservice from this directory (command line)
	vdservice install
	net start vdservice

Uninstall: net stop vdservice + vdservice uninstall

3. Add a device 'channel' to the VM
Device type:	spicevmc
Target type:	virtio
Target name:	com.redhat.spice.0

4. Start guest and install virtio-serial vioser.inf

5. Add a secondary device Video in virt manager type QXL
6. Start guest with sudo virsh guest name
7. Open guest with sudo virt-viewer guest name
8. Activate secondary monitor in Windows, extend desktop and switch to fullscreen mode F11

Martin

Comment 77 yxu 2015-04-02 10:15:32 UTC
(In reply to Martin from comment #76)
> Vadim,
> thank you, very helpful learning something new every day. As I really hate
> the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be
> able to use qxlwddm-0.7.zip...
> 
> Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker
> around with multi monitor setup. Right?
> 
> For Windows versions <8 or <2012 this works perfect if I perform the
> following steps, Centos 6.5 (maybe this helps others):
> 
> 1. Update qxl driver at the Windows VM
> 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC
> 3. Install vdiservice from this directory (command line)
> 	vdservice install
> 	net start vdservice
> 
> Uninstall: net stop vdservice + vdservice uninstall
> 
> 3. Add a device 'channel' to the VM
> Device type:	spicevmc
> Target type:	virtio
> Target name:	com.redhat.spice.0
> 
> 4. Start guest and install virtio-serial vioser.inf
> 
> 5. Add a secondary device Video in virt manager type QXL
> 6. Start guest with sudo virsh guest name
> 7. Open guest with sudo virt-viewer guest name
> 8. Activate secondary monitor in Windows, extend desktop and switch to
> fullscreen mode F11
> 
> Martin

Do you mean you are trying to use qxl wddm driver on windows 7?

qxl on http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip  seemed can't install on windows 7 .

Comment 78 Martin 2015-04-02 10:45:02 UTC
No, for OSes < WIN 8 I meant the older - I guess XPDM driver qxldd, NOT the WDDM driver. I thought these instructions could be helpful for others.

Comment 79 Vadim Rozenfeld 2015-04-02 14:05:21 UTC
(In reply to yxu from comment #77)
> (In reply to Martin from comment #76)
> > Vadim,
> > thank you, very helpful learning something new every day. As I really hate
> > the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be
> > able to use qxlwddm-0.7.zip...
> > 
> > Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker
> > around with multi monitor setup. Right?

Right, qxlwddm-0.6 doesn't support multi-monitor configuration. Try qxlwddm-0.7
instead, it should be fine.

> > 
> > For Windows versions <8 or <2012 this works perfect if I perform the
> > following steps, Centos 6.5 (maybe this helps others):
> > 
> > 1. Update qxl driver at the Windows VM
> > 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC
> > 3. Install vdiservice from this directory (command line)
> > 	vdservice install
> > 	net start vdservice
> > 
> > Uninstall: net stop vdservice + vdservice uninstall
> > 
> > 3. Add a device 'channel' to the VM
> > Device type:	spicevmc
> > Target type:	virtio
> > Target name:	com.redhat.spice.0
> > 
> > 4. Start guest and install virtio-serial vioser.inf
> > 
> > 5. Add a secondary device Video in virt manager type QXL
> > 6. Start guest with sudo virsh guest name
> > 7. Open guest with sudo virt-viewer guest name
> > 8. Activate secondary monitor in Windows, extend desktop and switch to
> > fullscreen mode F11
> > 
> > Martin
> 

It also should work with qxlwddm-0.7, except for arbitrary resolutions (re-sizing) which needs some changes in vdagent code to work properly.

Vadim.
 
> Do you mean you are trying to use qxl wddm driver on windows 7?
> 
> qxl on http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip  seemed
> can't install on windows 7 .

Comment 80 Martin 2015-04-02 14:44:36 UTC
Vadim,
thank you, again very helpful. As I have learned that it doesn't make sense to setup qxlwddm-0.7 on rockstable workhorse boxes with Centos 6.x could we, as a conclusion say that at least Centos 7 or RHEL 7 is required for qxlwddm-0.7?
Martin

Comment 82 yxu 2015-04-07 11:30:32 UTC
(In reply to Vadim Rozenfeld from comment #79)
> (In reply to yxu from comment #77)
> > (In reply to Martin from comment #76)
> > > Vadim,
> > > thank you, very helpful learning something new every day. As I really hate
> > > the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be
> > > able to use qxlwddm-0.7.zip...
> > > 
> > > Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker
> > > around with multi monitor setup. Right?
> 
> Right, qxlwddm-0.6 doesn't support multi-monitor configuration. Try
> qxlwddm-0.7
> instead, it should be fine.
> 
> > > 
> > > For Windows versions <8 or <2012 this works perfect if I perform the
> > > following steps, Centos 6.5 (maybe this helps others):
> > > 
> > > 1. Update qxl driver at the Windows VM
> > > 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC
> > > 3. Install vdiservice from this directory (command line)
> > > 	vdservice install
> > > 	net start vdservice
> > > 
> > > Uninstall: net stop vdservice + vdservice uninstall
> > > 
> > > 3. Add a device 'channel' to the VM
> > > Device type:	spicevmc
> > > Target type:	virtio
> > > Target name:	com.redhat.spice.0
> > > 
> > > 4. Start guest and install virtio-serial vioser.inf
> > > 
> > > 5. Add a secondary device Video in virt manager type QXL
> > > 6. Start guest with sudo virsh guest name
> > > 7. Open guest with sudo virt-viewer guest name
> > > 8. Activate secondary monitor in Windows, extend desktop and switch to
> > > fullscreen mode F11
> > > 
> > > Martin
> > 
> 
> It also should work with qxlwddm-0.7, except for arbitrary resolutions
> (re-sizing) which needs some changes in vdagent code to work properly.
> 
> Vadim.
>  
> > Do you mean you are trying to use qxl wddm driver on windows 7?
> > 
> > qxl on http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip  seemed
> > can't install on windows 7 .

Hi Vadmin !

Is windows 7 version of qxldod build possibble ?

Because DirectX does make sense for me .

Comment 83 Vadim Rozenfeld 2015-04-08 03:36:04 UTC
(In reply to yxu from comment #82)
> (In reply to Vadim Rozenfeld from comment #79)
> > (In reply to yxu from comment #77)
> > > (In reply to Martin from comment #76)
> > > > Vadim,
> > > > thank you, very helpful learning something new every day. As I really hate
> > > > the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be
> > > > able to use qxlwddm-0.7.zip...
> > > > 
> > > > Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker
> > > > around with multi monitor setup. Right?
> > 
> > Right, qxlwddm-0.6 doesn't support multi-monitor configuration. Try
> > qxlwddm-0.7
> > instead, it should be fine.
> > 
> > > > 
> > > > For Windows versions <8 or <2012 this works perfect if I perform the
> > > > following steps, Centos 6.5 (maybe this helps others):
> > > > 
> > > > 1. Update qxl driver at the Windows VM
> > > > 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC
> > > > 3. Install vdiservice from this directory (command line)
> > > > 	vdservice install
> > > > 	net start vdservice
> > > > 
> > > > Uninstall: net stop vdservice + vdservice uninstall
> > > > 
> > > > 3. Add a device 'channel' to the VM
> > > > Device type:	spicevmc
> > > > Target type:	virtio
> > > > Target name:	com.redhat.spice.0
> > > > 
> > > > 4. Start guest and install virtio-serial vioser.inf
> > > > 
> > > > 5. Add a secondary device Video in virt manager type QXL
> > > > 6. Start guest with sudo virsh guest name
> > > > 7. Open guest with sudo virt-viewer guest name
> > > > 8. Activate secondary monitor in Windows, extend desktop and switch to
> > > > fullscreen mode F11
> > > > 
> > > > Martin
> > > 
> > 
> > It also should work with qxlwddm-0.7, except for arbitrary resolutions
> > (re-sizing) which needs some changes in vdagent code to work properly.
> > 
> > Vadim.
> >  
> > > Do you mean you are trying to use qxl wddm driver on windows 7?
> > > 
> > > qxl on http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip  seemed
> > > can't install on windows 7 .
> 
> Hi Vadmin !
> 
> Is windows 7 version of qxldod build possibble ?
> 
> Because DirectX does make sense for me .

No. As far as I know, there is no plans for supporting WDDM 1.1 interface (Win7).
Vadim.

Comment 84 Louis van Dyk 2015-04-08 14:25:20 UTC
Two points:

1.  Feedback on compatibility: I am running on host Fedora 21 X86_64 with guest Windows 8.1 using first the 0.6 driver and then upgrading to 0.7.  (I had all the Windows patches installed before installing 0.6).  I have had no Code 43 problems.

2.  In Comment 76 mention is made of installing vdservice.exe and vdagent.exe.  Please could someone share where I can download these files from?  Having the screen automatically resize would be VERY useful to me.

Thanks for all the hard work!

Comment 85 Martin 2015-04-08 14:56:34 UTC
Louis,
vdagent and vdservice are from here:
http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.2/
You can also use the full Windows guest tools package from here:
http://www.spice-space.org/download/windows/spice-guest-tools/

Although these binaries are pretty old they worked for me, up to Windows 7.

Redhat has an own service, you need a subscription to be able to download the drivers. they are contained in 'virtio-win-1.7.2-2.el6.noarch.rpm' (maybe there's already a newer version): qemu-ga-x64.msi and qemu-ga-x32.msi.

I didn't try the Redhat programs.
Martin

Comment 86 Lindsay Mathieson 2015-04-08 22:45:03 UTC
(In reply to Louis van Dyk from comment #84)
> 
> 2.  In Comment 76 mention is made of installing vdservice.exe and
> vdagent.exe.  Please could someone share where I can download these files
> from?  Having the screen automatically resize would be VERY useful to me.
> 


You can install the latest spice tools in win 7, then copy the directory to a win 8.x VM and run vdservice -install to register the service.

Comment 87 Vadim Rozenfeld 2015-04-08 23:48:30 UTC
(In reply to Lindsay Mathieson from comment #86)
> (In reply to Louis van Dyk from comment #84)
> > 
> > 2.  In Comment 76 mention is made of installing vdservice.exe and
> > vdagent.exe.  Please could someone share where I can download these files
> > from?  Having the screen automatically resize would be VERY useful to me.
> > 
> 
> 
> You can install the latest spice tools in win 7, then copy the directory to
> a win 8.x VM and run vdservice -install to register the service.

Yes, it should work fine, except for resizing which requires a special handling in Win8.

Comment 88 Bjoern Teipel 2015-04-13 20:36:32 UTC
FYI, I did got the 0.11 driver to work with also manually installing vdservice and vdagent from spice-guest-tools-0.74.exe (installed it and then manually installed the services from cmd)

I had to patch lz.js and display.js from the spice-html5 sources to get the display rotated upside down. More info including patch at https://bugs.launchpad.net/openstack-ansible/+bug/1428833/comments/5
I do still have an issue with the mouse acceleration

Comment 89 Jingfeng Zhao 2015-04-14 10:03:17 UTC
(In reply to bjoern from comment #88)
> FYI, I did got the 0.11 driver to work with also manually installing
> vdservice and vdagent from spice-guest-tools-0.74.exe (installed it and then
> manually installed the services from cmd)
> 
With centos7.0 + ovirt3.5 + windows8.1 32bit + 0.11 driver + vdagent-win-0.7.3,
everything is fine.

U can get vdagent-win-0.7.3 at 
http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/

> I had to patch lz.js and display.js from the spice-html5 sources to get the
> display rotated upside down. More info including patch at
> https://bugs.launchpad.net/openstack-ansible/+bug/1428833/comments/5
> I do still have an issue with the mouse acceleration

Comment 90 Todd 2015-04-14 18:44:06 UTC
(In reply to Jingfeng Zhao from comment #89)

> U can get vdagent-win-0.7.3 at 
> http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/

Do you need all three files or just the tar ball?

Comment 91 Lulin Fan 2015-04-16 06:20:56 UTC
(In reply to Jingfeng Zhao from comment #89)
> (In reply to bjoern from comment #88)
> > FYI, I did got the 0.11 driver to work with also manually installing
> > vdservice and vdagent from spice-guest-tools-0.74.exe (installed it and then
> > manually installed the services from cmd)
> > 
> With centos7.0 + ovirt3.5 + windows8.1 32bit + 0.11 driver +
> vdagent-win-0.7.3,
> everything is fine.
> 
> U can get vdagent-win-0.7.3 at 
> http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/
> 
> > I had to patch lz.js and display.js from the spice-html5 sources to get the
> > display rotated upside down. More info including patch at
> > https://bugs.launchpad.net/openstack-ansible/+bug/1428833/comments/5
> > I do still have an issue with the mouse acceleration

How about the performance?  I can install the driver without any problem but using with spice feel a bit sluggish, espacilly when play video muose move slowly.

Comment 92 Lindsay Mathieson 2015-04-17 15:19:08 UTC
Using the 0.11 driver and vdservice/vdagent 0.73 with Windows Preview 10 (64bit).

Working fine so far, no crashes and accelerated video is working. Auto guest Resize sort of works - only resizes in discrete steps, but I gather thats a limit of the wddm model? Fullscreen snaps to the right size though.

Thanks for the driver, much appreciated.

Comment 93 Vadim Rozenfeld 2015-04-18 00:09:19 UTC
(In reply to Lindsay Mathieson from comment #92)
> Using the 0.11 driver and vdservice/vdagent 0.73 with Windows Preview 10
> (64bit).
> 
> Working fine so far, no crashes and accelerated video is working. Auto guest
> Resize sort of works - only resizes in discrete steps, but I gather thats a
> limit of the wddm model? Fullscreen snaps to the right size though.

Not exactly, qxl-dod itself knows how to deal with arbitrary resolutions.
But vdagent needs to be extended with some Win8 related code to send Escape code
properly. I sent such code to the SPICE team some time ago, so it probably will be integrated into vdagent in the following versions.

> 
> Thanks for the driver, much appreciated.

Comment 94 Lindsay Mathieson 2015-04-18 00:33:52 UTC
(In reply to Vadim Rozenfeld from comment #93)
> 
> Not exactly, qxl-dod itself knows how to deal with arbitrary resolutions.
> But vdagent needs to be extended with some Win8 related code to send Escape
> code
> properly. I sent such code to the SPICE team some time ago, so it probably
> will be integrated into vdagent in the following versions.


Ah, good to know.

I was thinking of putting together a windows guest installer that incorporated the latest vdagent (0.74), virtio drivers (1.0) and the wddm qxl driver (0.11) to ease testing - would that be ok to make available?

Comment 95 Matthew Gabeler-Lee 2015-04-18 00:51:43 UTC
I just tried the 0.11 driver.  I got a black screen at install and had to force reboot, but after the reboot the driver was installed.  It's hard to say yet for sure if the performance is improved, but I think it is.

Now I just wish I could figure out how to add custom display resolutions in Win8 so I could match the VM resolution to my display resolution.

Comment 96 Vadim Rozenfeld 2015-04-18 01:20:44 UTC
(In reply to Lindsay Mathieson from comment #94)
> (In reply to Vadim Rozenfeld from comment #93)
> > 
> > Not exactly, qxl-dod itself knows how to deal with arbitrary resolutions.
> > But vdagent needs to be extended with some Win8 related code to send Escape
> > code
> > properly. I sent such code to the SPICE team some time ago, so it probably
> > will be integrated into vdagent in the following versions.
> 
> 
> Ah, good to know.
> 
> I was thinking of putting together a windows guest installer that
> incorporated the latest vdagent (0.74), virtio drivers (1.0) and the wddm
> qxl driver (0.11) to ease testing - would that be ok to make available?

I have no idea about vdagent redistribution policies, but wddm qxl and RH-signed
virtio-win drivers available from fedoraproject side should be freely redistributable software. 
BTW, what is the virtio drivers 1.0? The latest publicly available version is 100. But if you are going to use drivers from   http://alt.fedoraproject.org/pub/alt/virtio-win/latest/ , you must understand, that even though the drivers in this folder can be more advanced than drivers in folder stable, they are still not fully tested yet.

Comment 97 Vadim Rozenfeld 2015-04-18 01:26:11 UTC
(In reply to Matthew Gabeler-Lee from comment #95)
> I just tried the 0.11 driver.  I got a black screen at install and had to
> force reboot, but after the reboot the driver was installed.  It's hard to

Did you update the MS in-box driver or a previous version of qxl-dod driver?

> say yet for sure if the performance is improved, but I think it is.
> 
> Now I just wish I could figure out how to add custom display resolutions in
> Win8 so I could match the VM resolution to my display resolution.

It's what the arbitrary resolution feature for. Please see the comment #c93

Comment 98 Lindsay Mathieson 2015-04-18 01:27:55 UTC
(In reply to Vadim Rozenfeld from comment #96)

> I have no idea about vdagent redistribution policies, 

I'll check that

> but wddm qxl and
> RH-signed
> virtio-win drivers available from fedoraproject side should be freely
> redistributable software. 

Thanks, just thought it oolite to ask anyway.


> BTW, what is the virtio drivers 1.0? The latest publicly available version
> is 100.

Gah - meant 100 ;)

> But if you are going to use drivers from  
> http://alt.fedoraproject.org/pub/alt/virtio-win/latest/ , you must
> understand, that even though the drivers in this folder can be more advanced
> than drivers in folder stable, they are still not fully tested yet.

Yup

Comment 99 Christophe Fergeau 2015-04-20 09:50:11 UTC
(In reply to Vadim Rozenfeld from comment #93)
> But vdagent needs to be extended with some Win8 related code to send Escape
> code
> properly. I sent such code to the SPICE team some time ago, so it probably
> will be integrated into vdagent in the following versions.

Would you have a link to that patch? I haven't been able to find it on the spice-devel mailing list.

Comment 100 Vadim Rozenfeld 2015-04-20 10:54:07 UTC
Created attachment 1016319 [details]
Win8 resize POC code

I sent it directly to Sandy. It is just a POC but can be easily integrated into vdagent code.

Comment 101 Christophe Fergeau 2015-04-20 11:39:18 UTC
Ah ok, this makes sense, and would correspond to the patch series she sent a while ago.

Comment 102 Sylvain Deverre 2015-05-07 09:43:08 UTC
Hello,

I tried the last published binaries of qxl-dod (0.11) on my Windows 8.1 virtual machine, which seems to work well, except I experience random freezes of the display which forces me to do an hard reset of the virtual machine.
It seems that guest display freezes happen more frequenly when host uses swap partitions than using solely physical RAM.

QEMU command: 

/usr/bin/qemu-system-x86_64 -name win8.1.64 -S -machine pc-i440fx-2.2,accel=kvm,usb=off -m 1043 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid ca209782-ea9c-4aa3-87a6-f33bc3b34937 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/home/sdever/.config/libvirt/qemu/lib/win8.1.64.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/home/DiskImages/win8.1.qcow2,if=none,id=drive-ide0-0-0,format=qcow2,cache=unsafe -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive if=none,id=drive-ide0-0-1,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,bootindex=1 -netdev tap,fd=19,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:c8:3e:a5,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,chardev=charredir3,id=redir3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -cpu Nehalem,+vmx,-hypervisor -enable-kvm -msg timestamp=on

Comment 103 dcui 2015-06-05 07:34:14 UTC
Hello,

     I recomplied the last code qxl-dod (0.11), tried on my Windows 8.1 virtual machine, which seems to work well. But the mouse information is through the display channel, rather than the cursor channel to reach the client.
     
    so modifyed qxldod.h:449 BOOLEAN EnablePointer(void) { return FALSE; } --> 
BOOLEAN EnablePointer(void) { return TRUE; }, the mouse information is through the cursor channel. Buf the mouse of monochrome displayed abnormally.

    I got some info from https://msdn.microsoft.com/pl-pl/library/windows/hardware/ff559481(v=vs.85).aspx, and modifyed qxldod.cpp:QxlDevice::SetPointerShape func
    1: del thie line-- cursor->header.height >>= 1;
    2: mod src_end = src + (pSetPointerShape->Pitch * pSetPointerShape->Height); --> src_end = src + (pSetPointerShape->Pitch * pSetPointerShape->Height * pSetPointerShape->Flags.Monochrome ? 2:1);

   New it work well.

Comment 104 Vadim Rozenfeld 2015-06-08 03:26:34 UTC
(In reply to dcui from comment #103)
> Hello,
> 
>      I recomplied the last code qxl-dod (0.11), tried on my Windows 8.1
> virtual machine, which seems to work well. But the mouse information is
> through the display channel, rather than the cursor channel to reach the
> client.
>      
>     so modifyed qxldod.h:449 BOOLEAN EnablePointer(void) { return FALSE; }
> --> 
> BOOLEAN EnablePointer(void) { return TRUE; }, the mouse information is
> through the cursor channel. Buf the mouse of monochrome displayed abnormally.
> 
>     I got some info from
> https://msdn.microsoft.com/pl-pl/library/windows/hardware/ff559481(v=vs.85).
> aspx, and modifyed qxldod.cpp:QxlDevice::SetPointerShape func
>     1: del thie line-- cursor->header.height >>= 1;
>     2: mod src_end = src + (pSetPointerShape->Pitch *
> pSetPointerShape->Height); --> src_end = src + (pSetPointerShape->Pitch *
> pSetPointerShape->Height * pSetPointerShape->Flags.Monochrome ? 2:1);
> 
>    New it work well.

Thanks.
Could you please send your changes as a patch or as a pull request?
I will review and apply it shortly.

Best regards,
Vadim.

Comment 105 dcui 2015-06-08 07:37:17 UTC
(In reply to Vadim Rozenfeld from comment #104)
> (In reply to dcui from comment #103)
> > Hello,
> > 
> >      I recomplied the last code qxl-dod (0.11), tried on my Windows 8.1
> > virtual machine, which seems to work well. But the mouse information is
> > through the display channel, rather than the cursor channel to reach the
> > client.
> >      
> >     so modifyed qxldod.h:449 BOOLEAN EnablePointer(void) { return FALSE; }
> > --> 
> > BOOLEAN EnablePointer(void) { return TRUE; }, the mouse information is
> > through the cursor channel. Buf the mouse of monochrome displayed abnormally.
> > 
> >     I got some info from
> > https://msdn.microsoft.com/pl-pl/library/windows/hardware/ff559481(v=vs.85).
> > aspx, and modifyed qxldod.cpp:QxlDevice::SetPointerShape func
> >     1: del thie line-- cursor->header.height >>= 1;
> >     2: mod src_end = src + (pSetPointerShape->Pitch *
> > pSetPointerShape->Height); --> src_end = src + (pSetPointerShape->Pitch *
> > pSetPointerShape->Height * pSetPointerShape->Flags.Monochrome ? 2:1);
> > 
> >    New it work well.
> 
> Thanks.
> Could you please send your changes as a patch or as a pull request?
> I will review and apply it shortly.
> 
> Best regards,
> Vadim.

Sorry I don't know how to increase the attachment.

I uesed "diff" command, got three modifications:

1、QxlDod.h
449c449
<     BOOLEAN EnablePointer(void) { return FALSE; }
---
>       BOOLEAN EnablePointer(void) { return TRUE; }


2、QxlDod.cpp
4378d4377
<         cursor->header.height >>= 1;

3、QxlDod.cpp
4399c4398
<     src_end = src + (pSetPointerShape->Pitch * pSetPointerShape->Height);
---
>     src_end = src + (pSetPointerShape->Pitch * pSetPointerShape->Height * (pSetPointerShape->Flags.Monochrome ? 2 : 1));

Comment 109 Alessandro Nardecchia 2015-07-08 12:36:21 UTC
After some many tests, i can confirm that 0.11 works fine on Windows 8.1 64 Professional.

In order to make guest driver to work, parameter "-global qxl-vga.revision=4" (for qemu exec) do the trick ;)

Guest monitor automatic resize won't work. I think it's related to vdagent service. (0.73)

Someone has news about a future release of this one?

Comment 110 Christophe Fergeau 2015-07-08 13:36:38 UTC
(In reply to Alessandro Nardecchia from comment #109)
> I think it's related to vdagent service. (0.73)

Where did you get this agent binary from?

Comment 111 Alessandro Nardecchia 2015-07-08 13:52:22 UTC
(In reply to Christophe Fergeau from comment #110)
> (In reply to Alessandro Nardecchia from comment #109)
> > I think it's related to vdagent service. (0.73)
> 
> Where did you get this agent binary from?

was reported here on a previous comment:

http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/

unfortunately automatic resize don't work fine. :(

Comment 112 Martin 2015-07-08 14:19:42 UTC
Gents,
I'm using 0.11 for my Win 8.1 x64 guest on Centos 7.1 (3.10.0-229.7.2.el7.x86_64) with a dual monitor setup (2 qxl devices). I didn't have to make any additional changes in the xml file. The only minor issue I currently have is that moving the cursor by keyboard keys like shift + end is kind of slow sometimes. I do not know if its related to qxlwddm.

I am using vdagent and vdservice from spice-guest-tools-0.100.exe which can be found here: http://www.spice-space.org/download/binaries/spice-guest-tools/

If you like to use them I strongly recommend NOT to install the guest tools but instead extract all files with 7-Zip and manually install vdagent and vdservice:

2. Copy vdagent.exe and vdservice.exe to a directory on the client PC
3. Install vdservice from this directory (command line)
	vdservice install
	net start vdservice

	Uninstall: net stop vdservice + vdservice uninstall

Hope this helps!
Martin

Comment 113 Christophe Fergeau 2015-07-08 14:26:04 UTC
(In reply to Alessandro Nardecchia from comment #111)
> 
> was reported here on a previous comment:
> 
> http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/
> 
> unfortunately automatic resize don't work fine. :(

Yes, this build predates the code aluded to in https://bugzilla.redhat.com/show_bug.cgi?id=895356#c93

Comment 114 Christophe Fergeau 2015-07-08 14:27:43 UTC
(In reply to Martin from comment #112)
> 
> If you like to use them I strongly recommend NOT to install the guest tools

Why not ?

Comment 115 Martin 2015-07-08 14:41:46 UTC
Because the guest tools install ALL included drivers on the VM. For me that led to serious issues in the past. If you only want vdservice then only install vdservice. My vdagent is File Version 0.5.1.0

Comment 116 Christophe Fergeau 2015-07-08 14:56:58 UTC
(In reply to Martin from comment #115)
> Because the guest tools install ALL included drivers on the VM. For me that
> led to serious issues in the past. If you only want vdservice then only
> install vdservice. My vdagent is File Version 0.5.1.0

For what it's worth, please file bugs when this installer causes issues as it's supposed to be as painless as possible. vdagent/vdservice requires vioserial to work properly, so you need to install that as well.

Comment 117 Marcel Wysocki 2015-07-17 07:29:00 UTC
Driver version 0.11 with vdagent 0.73 seems to install fine on Win10 RTM release
but when setting to auto resize it flickers once per second, seems like its resetting the resolution over and over again.
Host is F22 with virt-preview packages

Comment 118 Frank Büttner 2015-08-01 13:39:05 UTC
Same with 0.12.

Comment 119 Alessandro Nardecchia 2015-08-04 08:19:25 UTC
(In reply to Frank Büttner from comment #118)
> Same with 0.12.

(In reply to Marcel Wysocki from comment #117)
> Driver version 0.11 with vdagent 0.73 seems to install fine on Win10 RTM
> release
> but when setting to auto resize it flickers once per second, seems like its
> resetting the resolution over and over again.
> Host is F22 with virt-preview packages

0.12 / 0.11 works fine on Windows 10/8.1 guests, except guest resize.

Like me, many users are waiting for news about a fresh release of vdagent for Windows, with that feature

Comment 120 Martin 2015-08-04 08:47:01 UTC
Gents,
as I already mentioned I'm running a Win 8.1 x64 VM with dual monitor setup (0.12) on Centos 7.1 (3.10.0-229.7.2.el7.x86_64). I'm using virt-viewer to access the VM. Everything works almost perfect here, NO issue with resizing screens of VM.

Can anyone explain to me where 'setting to auto resize' is done?

This would enable me to verify if the issue can be reproduced.
Thank you!
Martin

Comment 121 Alessandro Nardecchia 2015-08-04 09:25:38 UTC
(In reply to Martin from comment #120)
> Gents,
> as I already mentioned I'm running a Win 8.1 x64 VM with dual monitor setup
> (0.12) on Centos 7.1 (3.10.0-229.7.2.el7.x86_64). I'm using virt-viewer to
> access the VM. Everything works almost perfect here, NO issue with resizing
> screens of VM.
> 
> Can anyone explain to me where 'setting to auto resize' is done?
> 
> This would enable me to verify if the issue can be reproduced.
> Thank you!
> Martin

My situation:

- Global qemu/kvm qxl revision = 4 (for all guest types: windows 7 , windows 8.1, windows 10)

- I'm using a Python script (SpiceClientGtk.so/pygtk with resize-guest = True on Spice GTK Widget Object) or spicy test client.

When using a windows 8.1/10 guest with new qxl-wddm driver (0.11-0.12) Display does not resize correctly. I can only get standard resolutions: 1366x768, 1280x800, 1280x720, 800x600 but not a particural one like: 1366x738 or 1700x1080 (On windows 7 guest i get all resolutions without problems :) )

This problem it's related to vdagent.exe service (current 0.7.3) that not handle my custom screen resolutions request as explained in this comment by Vadim:

https://bugzilla.redhat.com/show_bug.cgi?id=895356#c93

Resize code for windows 8.1 (not sure if already for windows 10) was posted here but i don't have much info for applying and building vdagent.exe with this patch :/ and i'm waiting for a new release.

Alessandro

Comment 122 Marcel Wysocki 2015-08-04 12:23:01 UTC
(In reply to Martin from comment #120)

> Can anyone explain to me where 'setting to auto resize' is done?
> 

In virt-managers built-in virt viewer you can enable auto resize

Comment 123 Lindsay Mathieson 2015-08-04 12:41:57 UTC
Auto resize has been working fine for me.

- Qemu 2.2.1
- Windows 10 RTM
- 0.11 QXL Drivers
- vdservice/vdagent from the Spice Tools 1.00 Installer

Not using dual monitors. I'll test that tomorrow.

Performance seems a little sluggish compared to Windows 7. But still quite usable.

Comment 124 Lindsay Mathieson 2015-08-04 12:43:15 UTC
p.s I'm using the 1.0 Spice Client on Kubuntu.

Comment 125 Martin 2015-08-04 12:48:39 UTC
Marcel,
thank you, I tried with virt-manager's internal viewer, works also, guest resize works, no flickering.

Allesandro's comment: ...I can only get standard resolutions: 1366x768, 1280x800, 1280x720, 800x600...

strongly remminds me on the situation I had when I tried to run qxlwddm 0.7 instead of 0.6 on my Centos 6.5 box:

https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72

This was exactly the issue. After changing the host OS to Centos 7.1 everything started to work as expected, vdservice and vdagent on my VM are both ver. 0.5.1.0
Martin

Comment 126 Alessandro Nardecchia 2015-08-04 14:11:16 UTC
(In reply to Martin from comment #125)
> Marcel,
> thank you, I tried with virt-manager's internal viewer, works also, guest
> resize works, no flickering.
> 
> Allesandro's comment: ...I can only get standard resolutions: 1366x768,
> 1280x800, 1280x720, 800x600...
> 
> strongly remminds me on the situation I had when I tried to run qxlwddm 0.7
> instead of 0.6 on my Centos 6.5 box:
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72
> 
> This was exactly the issue. After changing the host OS to Centos 7.1
> everything started to work as expected, vdservice and vdagent on my VM are
> both ver. 0.5.1.0
> Martin

Thanks Martin!

Fresh install of a windows 8.1 with qxl-0.12, spice-guest-tools 0.100.
Checked revision on windows device manager and results: REV_04 
but same problem :/

Maybe it's releated to QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.14) ???

Comment 127 Vadim Rozenfeld 2015-08-05 02:34:59 UTC
(In reply to Alessandro Nardecchia from comment #126)
> (In reply to Martin from comment #125)
> > Marcel,
> > thank you, I tried with virt-manager's internal viewer, works also, guest
> > resize works, no flickering.
> > 
> > Allesandro's comment: ...I can only get standard resolutions: 1366x768,
> > 1280x800, 1280x720, 800x600...
> > 
> > strongly remminds me on the situation I had when I tried to run qxlwddm 0.7
> > instead of 0.6 on my Centos 6.5 box:
> > 
> > https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72
> > 
> > This was exactly the issue. After changing the host OS to Centos 7.1
> > everything started to work as expected, vdservice and vdagent on my VM are
> > both ver. 0.5.1.0
> > Martin
> 
> Thanks Martin!
> 
> Fresh install of a windows 8.1 with qxl-0.12, spice-guest-tools 0.100.
> Checked revision on windows device manager and results: REV_04 
> but same problem :/
> 
> Maybe it's releated to QEMU emulator version 2.0.0 (Debian
> 2.0.0+dfsg-2ubuntu1.14) ???

resizing is mostly related to spice->vdagent->qxldod communication chain, rather than qemu.

Best regards,
Vadim.

Comment 128 Martin 2015-08-05 13:06:11 UTC
Vadim,
thanks for the clarification. On my Win 8.1 (x64) VM I have vdagent.exe and vdservice.exe version 0.5.1.0 manually installed, extracted with 7-ZIP from spice-guest-tools-0.100.exe as described here:

https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112

No issues with resizing so far neither with virt managers internal viewer nor with virt-viewer. Hope this helps.

Comment 129 Louis van Dyk 2015-08-07 10:41:21 UTC
Vadmin, a question now on Windows 10 ...
My KVM Windows 8.1 machine qualifies for the "free upgrade" to Windows 10.  But with the QXL Driver 0.12, the upgrade checker claims it doesn't meet requirements because: 
"The display manufacturer hasn't made your display compatible with Windows 10. Check with the manufacturer for support." 

Any idea when / if this will happen?

Thank you for all the hard work you have done.

Comment 130 Vadim Rozenfeld 2015-08-07 11:24:13 UTC
(In reply to Louis van Dyk from comment #129)
> Vadmin, a question now on Windows 10 ...
> My KVM Windows 8.1 machine qualifies for the "free upgrade" to Windows 10. 
> But with the QXL Driver 0.12, the upgrade checker claims it doesn't meet
> requirements because: 
> "The display manufacturer hasn't made your display compatible with Windows
> 10. Check with the manufacturer for support." 
> 
> Any idea when / if this will happen?
> 
> Thank you for all the hard work you have done.

Not sure. It probably happens because Win10 has different driver signing policy. What used to work fine with Win10 code preview can stop working with RTM.
In any case, we are working on Win10 EV certification for our virtio-win drivers. Hopefully qxl driver will be next.

Best regards,
Vadim.

Comment 131 Matthew Gabeler-Lee 2015-08-07 12:24:52 UTC
I ran into the same upgrade issue, but was able to work around it by temporarily uninstalling the driver, doing the upgrade, and then reinstalling the driver, and all went well.

You can also use the windows 10 media creation tool to do an in-place upgrade, and it doesn't seem to be as picky about things as the upgrade tool built into windows update.  I was able to use that method to work around a similar issue on a different virtualization platform.

Comment 132 Lindsay Mathieson 2015-08-07 12:35:42 UTC
(In reply to Louis van Dyk from comment #129)
> Vadmin, a question now on Windows 10 ...
> My KVM Windows 8.1 machine qualifies for the "free upgrade" to Windows 10. 
> But with the QXL Driver 0.12, the upgrade checker claims it doesn't meet
> requirements because: 
> "The display manufacturer hasn't made your display compatible with Windows
> 10. Check with the manufacturer for support." 
> 
> Any idea when / if this will happen?
> 
> Thank you for all the hard work you have done.

To override the Compatibility Check.

Locate the registry key: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade]

It should exist, but if not, create it.

Create a new DWORD (32-bit) Value with Name = "AllowOSUpgrade” (without the quotes), and set the Value = 0x00000001.

Once the registry key is modified, check for updates.  

Worked for me, upgrading my Win 7 Pro VM.

Comment 133 Marc Haber 2015-08-13 09:49:32 UTC
(In reply to Vadim Rozenfeld from comment #127)
> resizing is mostly related to spice->vdagent->qxldod communication chain,
> rather than qemu.

How do I debug this comunication chain? I have Windows 10 running on a Debian box with KVM and Libvirt, spice-guest-tools 0.100 is installed, Device Manager says that Red Hat QXL Driver 3.10.44.724 is working properly.

Would I see vdagent and/or qxldod in Device or Service Manager?

Greetings
Marc

Comment 134 Louis van Dyk 2015-08-16 23:23:44 UTC
(In reply to Lindsay Mathieson from comment #132)

> To override the Compatibility Check.
> 
> Locate the registry key:
> [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\O
> SUpgrade]
> 
> It should exist, but if not, create it.
> 
> Create a new DWORD (32-bit) Value with Name = "AllowOSUpgrade” (without the
> quotes), and set the Value = 0x00000001.
> 
> Once the registry key is modified, check for updates.  
> 
> Worked for me, upgrading my Win 7 Pro VM.

You are brilliant!!  I am downloading the upgrade now ...

Comment 135 Matthew Gabeler-Lee 2015-08-17 13:51:17 UTC
I've been running this driver for a while now, both on Win 8.1 and Win 10 (same VM, pre/post upgrade).

While functionality and stability are fine, when I had to temporarily uninstall it to get the Win10 upgrade to go through, I thought things seemed faster.  Doing some more careful testing, I can now say for sure that, for me, the basic display adapter performs noticeably better than this driver, especially when connected over an SSH tunnel over a WAN.  Display updates are faster, but even more noticeable is that the pointer lag is quite terrible with this driver compared to the basic display driver.

Comment 136 Norberto Bensa 2015-09-02 01:01:14 UTC
Using spice-guest-tools 0.100, QXL driver 0.12

It's not clear to me how to get auto-resize working in Windows 8.1 guests. All I get are standard resolutions (1920x1080, 1600x900). Is this how it should behave?

vdagent.exe: 0.5.1.0
vdservice.exe: 0.5.1.0

QXL driver: 22.33.46.473 


With Windows Server 2008 R2 I get arbitrary resolutions. For example: 928x982. Same vdagent/vdservice versions. QXL driver 6.1.0.10020.

I'm using packages provided by Ubuntu: 

virt-manager: 1.0.1
spice: 0.25

Thanks!

Comment 138 bertaudmarc 2015-10-22 15:38:15 UTC
Using qxlwddm-0.12 and spice-guest-tools-0.100 on windows server 2012.

Does the copy/paste procedure available ?
If yes how to proceed for the installation ?

Thanks !

Comment 139 bertaudmarc 2015-10-22 16:07:52 UTC
I forget to say that I started vdservice but, after 60 seconds, the service is stopping.
I also tries to install the virtio-serial driver. When I restart the vm I have a BSOD.

Comment 140 bertaudmarc 2015-10-23 11:20:06 UTC
Forget my comments 138 and 139: I will open a new subject !

Comment 142 Fabian Tobias Rajter 2015-12-07 21:46:54 UTC
I have read this thread from top to bottom now several times but I still don't get it. I'm pretty sure that I have the latest versions of vdagent and qxl installed on my Windows 8.1 system but I still do not get arbitrary resolutions in window mode.

So i'd guess, even though the patch attached to this ticket is available for a relatively long time now, it is not yet released? Or did I miss a version that might not be public available?

Unfortunately I'm not able to build a patched version of the vdagent on my own but I would really like to test the patch and see if it works for me then.

Can someone who know this stuff better than me and is able to build this stuff please please supply a patched version for testing?

Comment 143 Sandy Stutsman 2015-12-09 18:37:52 UTC
Even the patched vd_agent will need further changes to properly support arbitrary resolution.  This is because the newer Oses require the use of the CCD API (Connecting and Configuring Displays)  to reliably set monitor position and resolution.  We are working adding these calls to vd_agent to support WDDM drivers but it is still a work in progress.

Comment 144 Fabian Tobias Rajter 2015-12-09 21:10:16 UTC
(In reply to Sandy Stutsman from comment #143)
> Even the patched vd_agent will need further changes to properly support
> arbitrary resolution.  This is because the newer Oses require the use of the
> CCD API (Connecting and Configuring Displays)  to reliably set monitor
> position and resolution.  We are working adding these calls to vd_agent to
> support WDDM drivers but it is still a work in progress.

Ok, thats not a good news. Is it something you can/will fix in the near future or is it low priority?

I've also opened a ticket for this problem on the SPICE Bugzilla because this ticket is not completely related to the problem.
https://bugs.freedesktop.org/show_bug.cgi?id=93304

Comment 145 Alessandro Nardecchia 2015-12-10 08:35:11 UTC
(In reply to Fabian Tobias Rajter from comment #144)
> (In reply to Sandy Stutsman from comment #143)
> > Even the patched vd_agent will need further changes to properly support
> > arbitrary resolution.  This is because the newer Oses require the use of the
> > CCD API (Connecting and Configuring Displays)  to reliably set monitor
> > position and resolution.  We are working adding these calls to vd_agent to
> > support WDDM drivers but it is still a work in progress.
> 
> Ok, thats not a good news. Is it something you can/will fix in the near
> future or is it low priority?
> 
> I've also opened a ticket for this problem on the SPICE Bugzilla because
> this ticket is not completely related to the problem.
> https://bugs.freedesktop.org/show_bug.cgi?id=93304

Many users like me need custom resolution to work properly :(

Comment 146 Martin 2015-12-10 09:12:26 UTC
just to clarify,
everything is working correctly on my centos 7.1 x64 laptop, guests: Windows 8 (x64), Windows 10 (x64), I can use whatsoever screen resolution, see my comments here:
https://bugzilla.redhat.com/show_bug.cgi?id=895356#c125

I'm using pretty old versions of vdagent and vdservice 0.5.1.0 extracted from the guest tools installer, manually(!) installed. WDDM display driver is Vadim's latest driver 0.12. I'm working with dual monitors, 2 qxl devices for each VM.

Let me know if you need information about program versions.
Martin

Comment 147 Alessandro Nardecchia 2015-12-10 09:56:56 UTC
(In reply to Martin from comment #146)
> just to clarify,
> everything is working correctly on my centos 7.1 x64 laptop, guests: Windows
> 8 (x64), Windows 10 (x64), I can use whatsoever screen resolution, see my
> comments here:
> https://bugzilla.redhat.com/show_bug.cgi?id=895356#c125
> 
> I'm using pretty old versions of vdagent and vdservice 0.5.1.0 extracted
> from the guest tools installer, manually(!) installed. WDDM display driver
> is Vadim's latest driver 0.12. I'm working with dual monitors, 2 qxl devices
> for each VM.
> 
> Let me know if you need information about program versions.
> Martin

Where i can find this vdagent release for testing on kvm-fedora 23 / kvm-ubuntu 14.04 hypervisor with my windows 8 guest? :)

Comment 148 Martin 2015-12-10 10:11:49 UTC
See my comments here:
https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112
I'd like to mention that custom resolutions did NOT work when I tried this procedure on my Centos 6 host.
Martin

Comment 149 Alessandro Nardecchia 2015-12-10 14:57:04 UTC
(In reply to Martin from comment #148)
> See my comments here:
> https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112
> I'd like to mention that custom resolutions did NOT work when I tried this
> procedure on my Centos 6 host.
> Martin

Tryed... no luck (fedora 23 and ubuntu 14.04) :(

i'll try on a centos 7.1 x64 hoping to find a workaround for this problem.

Comment 150 Martin 2015-12-10 15:11:17 UTC
Once I had a similar problem with QXLWDDM 0.6 on my Centos 6.5 box and was able to resolve it by a complete uninstall/reinstall of the driver in the guest:
https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72
Vadim's comments were also helpful:
https://bugzilla.redhat.com/show_bug.cgi?id=895356#c73

However setup of the Windows 10 x64 guest on Centos 7.1 worked (QXLWDDM 0.12) without any tweaking of the xml file. I strongly guess that your issue has something to do with the components on the host side.
Hope this helps a bit.
Martin

Comment 151 Alessandro Nardecchia 2015-12-10 15:25:56 UTC
(In reply to Martin from comment #150)
> Once I had a similar problem with QXLWDDM 0.6 on my Centos 6.5 box and was
> able to resolve it by a complete uninstall/reinstall of the driver in the
> guest:
> https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72
> Vadim's comments were also helpful:
> https://bugzilla.redhat.com/show_bug.cgi?id=895356#c73
> 
> However setup of the Windows 10 x64 guest on Centos 7.1 worked (QXLWDDM
> 0.12) without any tweaking of the xml file. I strongly guess that your issue
> has something to do with the components on the host side.
> Hope this helps a bit.
> Martin

Thanks for reply :)

I tryed all combinations based on all comments in this thread.

- WINDOWS 8/10 x86/x64
- QXL WDDM driver (0.6, 0.11, 0.12 updating the default VGA adapter)
- QXL REVISION 3 or 4
- SPICE GTK VERSIONS (all from 0.20 to 0.30) (VirtViewer, RemoteViewer, my python connector based on SpiceClientGtk.so import)
- VDAGENT (different versions, different install methods like you, and others explained here)
- QEMU-KVM (many differents versions)

I'm getting out of my mind! :D

The only hypervisor that i haven't tested it's CentOs 7.

Comment 152 Martin 2015-12-10 15:50:41 UTC
Sorry to hear that.
For Centos 7.1 x64 it was sufficient to install the following components:

yum install virt-manager libvirt virt-install qemu-kvm virt-viewer dejavu-lgc-sans-fonts

Add secondary monitor (WIN 8.1)

1. Update qxl driver with driver from extracted qxlwddm-0.12.zip
2. Copy extracted (7-zip - spice-guest-tools-0.100\64) vdagent.exe and vdservice.exe to a directory on the client PC
3. Install vdservice from this directory (command line)
	vdservice install
	net start vdservice

	Uninstall: net stop vdservice + vdservice uninstall

8.1: Service Name is RHEV Spice Agent

3. Add a device 'channel' to the host
Device type:	spicevmc
Target type:	virtio
Target name:	com.redhat.spice.0

4. Start guest and install virtio-serial vioser.inf
5. Add a secondary device Video in virt manager type QXL
6. Start guest with sudo virsh start guest name
7. Open guest with sudo virt-viewer guest name
8. Activate secondary monitor, extend desktop and switch to fullscreen mode F11

Martin

Comment 161 Dave Botsch 2016-04-12 03:05:02 UTC
Wanted to see what the status of this is.

Looks like the last QXL WDDM driver is dated July 29.

Guest Agent seems to work on Win10 for USB. Doesn't seem to work for screen resizing.

Mouse performance is still pretty poor and laggy (sometimes it seems to lose where the mouse cursor is) -- even without the Guest Agent ... my Guests are Win10, Srvr 2012R2, and for comparison, Srvr2008R2 and Win7 .

Win10 is definitely the worst, bordering on unusable, and may have other KVM performance issues as well.

Thanks.

Comment 162 Alexander Lindqvist 2016-05-13 05:33:30 UTC
We are also affected by poor performance on our virtual 2012 servers (choppy, mouse cursor lagging behind) Is work still ongoing to fix this? Windows 7 guests is very smooth on the same host.

Comment 163 Dave Botsch 2016-08-02 16:03:47 UTC
Hello? Is this thing on?

Comment 164 Mick Russom 2016-08-02 19:13:12 UTC
Yes, we are affected by these drivers - it would be nice to see these updated more often.

Comment 165 Vadim Rozenfeld 2016-08-03 11:58:34 UTC
(In reply to Mick Russom from comment #164)
> Yes, we are affected by these drivers - it would be nice to see these
> updated more often.

Since this driver is slowly moving from POC stage to production it has a new owner now - Dmitry Fleytman. I believe Dmitry can share the latest information about the driver.

Best regards,
Vadim.

Comment 166 Martin 2016-08-03 12:23:36 UTC
Thank you Vadim,
I just found information about an updated(?) driver here https://lists.freedesktop.org/archives/spice-devel/2016-February/026319.html
Binaries are here:
http://depot.flexvdi.com/guest-tools/
I didn't try them because for me 0.12 works reliable. Did anyone try one of these?
Martin

Comment 167 Dave Botsch 2016-08-03 13:18:31 UTC
I would definitely like to hear more about.

The 0.16 QXL driver itself, however, is a huge huge huge improvement. 

Testing on Windows10 1607 x64.

It's not doing the auto-scaling, but perhaps I also need the Guest Tools for that (can't recall)?

Comment 168 Lindsay Mathieson 2016-08-03 13:29:42 UTC
Yah, auto-sizing needs the guest agent.

There's a 0.16 version?

Comment 169 Dave Botsch 2016-08-03 13:34:45 UTC
Yep, at: http://depot.flexvdi.com/guest-tools/

dated April 2016.

Comment 170 Lindsay Mathieson 2016-08-03 20:38:06 UTC
Ah right, thanks. Not the official one.

Comment 171 Dave Botsch 2016-08-03 20:52:59 UTC
there is not yet an "official" one for Win 8/10. Hence this thread :)

Comment 172 Dave Botsch 2016-08-03 20:53:44 UTC
there is not yet an "official" one for Win 8/10. Hence this thread :)

Comment 173 Dave Botsch 2016-08-03 20:54:11 UTC
there is not yet an "official" one for Win 8/10. Hence this thread :)

Comment 174 Dave Botsch 2016-08-04 13:59:47 UTC
One problem with the Guest Tools installer is that that installer blows away existing drivers, replacing said drivers with the driver versions included with the Guest Tools. The installer did not give the option to only install the Guest Agent (which was the only piece I wanted, having already installed drivers from the virtio-win package in RHEL6).

Please fix :)

Comment 175 Martin 2016-08-05 08:00:38 UTC
Dave,
agree 100%, we already had this discussion in the past see https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112

I'm working with a pretty old version of the agent 0.5.1.0, resizing and all other stuff works with qxlwddm 0.12 on all Windows guests.
Martin

Comment 176 Alessandro Nardecchia 2016-08-05 08:16:03 UTC
http://depot.flexvdi.com/guest-tools/

here you can find a special customized qxl driver that works (almost stable) for me on windows 8.1 and a special guest agent that finally grant very custom resolution change.

It's works only with qemu param qxl.revision=4

Not a stable and official ones, but a good workaround ;)

Comment 181 Martin 2016-10-02 11:07:38 UTC
Alessandro,
for testing I downloaded the zip file as well as the latest iso file. Question: Where is the 'special guest agent'?? I currently use vdagent and vdservice.

Thank you in advance!
Martin

Comment 182 Alessandro Nardecchia 2016-10-03 07:34:27 UTC
(In reply to Martin from comment #181)
> Alessandro,
> for testing I downloaded the zip file as well as the latest iso file.
> Question: Where is the 'special guest agent'?? I currently use vdagent and
> vdservice.
> 
> Thank you in advance!
> Martin

on the same dir you can find: http://depot.flexvdi.com/guest-tools/flexvdi-guest-tools-2.2.9.exe

I don't know if it's different from original vd-agent package, but in win 8.1 works almost stable.

Comment 183 D 2016-10-18 15:54:44 UTC
Dmitry, can we know what is the current state of this?

Comment 184 Dmitry Fleytman 2016-10-20 11:59:36 UTC
We are working on unified driver for Win8/10/2012/2016.
The new repository location is https://gitlab.com/spice/qxl-wddm-dod.

Current master (commit 1afadc7aeb4314809746ce53a16dc7b24e802428) is stable as far as we concerned and we are going to release an official build from it.

Comment 185 David Blechter 2016-12-06 16:38:59 UTC
On devel side there are no plans to add it to HRV. The WDDM DOD is recommended for local cases only.

Comment 186 Colin Coe 2016-12-06 23:35:25 UTC
(In reply to David Blechter from comment #185)
> On devel side there are no plans to add it to HRV. The WDDM DOD is
> recommended for local cases only.

Could explain this comment?  (Also assuming HRV was supposed to be RHV?)

Comment 189 David Blechter 2017-01-30 19:25:54 UTC
(In reply to Colin Coe from comment #186)
> (In reply to David Blechter from comment #185)
> > On devel side there are no plans to add it to HRV. The WDDM DOD is
> > recommended for local cases only.
> 
> Could explain this comment?  (Also assuming HRV was supposed to be RHV?)

First, thanks for the correction, it is RHV!
Second, the local case means the client is running on the same machine, where VM is running.

Comment 190 Dave Botsch 2017-02-06 19:46:10 UTC
With vdagent-win-0.8.0 --- which is what is on spice-space.org/download/windows ...

it seems to have sort of installed the RHEV Vdagent.

Extracted... cd'd into the directory with vdagent and vdservice and did a vdservice install .

But, in services.msc, it left the path to where the files were extracted, which was in a temporary profile. So, that's no good. 

Shouldn't "vdservice install" be putting the files wherever they go in windows? Or is there an undocumented "make a permanent local folder" step?

Comment 191 Alessandro Nardecchia 2017-02-07 08:52:26 UTC
(In reply to Dave Botsch from comment #190)
> With vdagent-win-0.8.0 --- which is what is on
> spice-space.org/download/windows ...
> 
> it seems to have sort of installed the RHEV Vdagent.
> 
> Extracted... cd'd into the directory with vdagent and vdservice and did a
> vdservice install .
> 
> But, in services.msc, it left the path to where the files were extracted,
> which was in a temporary profile. So, that's no good. 
> 
> Shouldn't "vdservice install" be putting the files wherever they go in
> windows? Or is there an undocumented "make a permanent local folder" step?

The easy way :) (Tried on Win8 and Win10)

1) Install https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-0.100.exe

2) Under task manager or services management stop vdagent service.

3) Extract in a temp folder: https://www.spice-space.org/download/windows/vdagent/vdagent-win-0.8.0/vdagent-win-0.8.0.zip 

4) Replace vdagent.exe and vdservice.exe (take care of x86 or x64 depending on your's Win platform) in the folder: \\Program Files (x86)\SPICE Guest Tools\32 or \\Program Files (x86)\SPICE Guest Tools\64

5) Restart vdagent service from services management

6) Install the last qxl-wddm-dod: https://www.spice-space.org/download/windows/qxl-wddm-dod/qxl-wddm-dod-0.15/qxlwddm-0.15.zip


At the time i think that no dualmonitor/dual-head support :( but it seems to be almost stable.

Comment 192 Martin 2017-02-07 09:13:53 UTC
For me it works with dual display/dual-head from Windows XP (32Bit) up to the newest Windows Server 2016 (64Bit). I also have no problem with the location of vdagent.exe and vdservice.exe. Host OS is Centos 7.1.

I'm using version 0.5.1.0 of both programs. However I do NOT use one of the 'do everything for me' installers. QXL driver is still Vadims 0.12 version.

See: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112

Hope this helps.
Martin

Comment 206 Lindsay Mathieson 2017-07-06 09:07:02 UTC
(In reply to Pavel Grunt from comment #203)

> why not the latest (0.132) ?
> You can get it from
> https://www.spice-space.org/download.html#windows-binaries
> 
> 0.100 was released more than 2 years ago
> 


It would be nice if spice space listed *any* version information and/or embedded it in the filename rather than "latest"

I have no idea what versions are installed by https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe

The qxl links are all for 0.18, the spiceagent 0.80

Comment 207 Christophe Fergeau 2017-07-06 09:15:07 UTC
Versioned binaries are at https://www.spice-space.org/download/windows/spice-guest-tools/ , -latest is just a symlink provided for convenience, but I guess this doesn't translate well through http/https. The version of the various components can be found  by looking in the -src directory https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-0.132/src/
I forgot if the installer installs a text file with this information or not.

Comment 209 Lindsay Mathieson 2017-07-07 12:15:35 UTC
(In reply to Christophe Fergeau from comment #207)
> Versioned binaries are at
> https://www.spice-space.org/download/windows/spice-guest-tools/ , -latest is
> just a symlink provided for convenience, but I guess this doesn't translate
> well through http/https. 

Thanks

Comment 210 Candace 2017-07-12 17:12:56 UTC
I'm new to bugzilla format, so hopefully my response should be posted here.

I'm working on building a new Openstack Windows Server 2016 image, and we are having difficulties using the spice console (through Openstack) to display Windows 2016. It will display upside down and backwards. I am building the image with the latest virtio-win drivers, 0.1.139 and I have tried to manually install both qxl drivers mentioned in here (qxlwddm-0.12 and qxl-wddm-dod-0.18) both give me the error "The driver selected for this device does not support this version of Windows". I'm going through Device Manager and doing the install new drivers on the Microsoft Basic Display Adapter that is listed. I've also tried the Spice Guest Tools and the installer errored saying it wasn't a supported OS version. Has anyone had any success getting QXL/SPICE installed and working on Windows 2016 Standard (with GUI)? Does anyone have any suggestions on how I could tackle this? Thanks.

Comment 211 ybendito 2017-08-04 06:17:16 UTC
Latest driver qxl-wddm-dod-0.18 was certified for Win10, not for 2016. Currently there is no release of qxl-wddm-dod that targets 2016 and such release was never requested. Possible, the driver (qxl-wddm-dod-0.18) can be installed for one-time test purpose on 2016 if signature verification is suppressed (via 'shutdown -r -o'), but this can't be configured permanently.

Comment 212 Martin 2017-08-04 15:07:35 UTC
Gents,
this is the first time that I hear about such problems. For me, technically Server 2016 is Windows 10. I have a Standard Server 2016 (with GUI) and a Dual Display setup with spice and QXL DOD. According to device manager its qxldod.sys version 10.0.0.18000, digitally signed. However, I installed vdagent.exe and vdservice.exe manually, no big Guest Tools installer executed.
Hope this helps.
Martin

Comment 216 David Blechter 2017-08-07 15:21:11 UTC
This bug has been cloned to the RHEV-M .z stream:
https://bugzilla.redhat.com/show_bug.cgi?id=1478905

Comment 218 Yaniv Kaul 2017-09-28 12:57:04 UTC
Uri, please add relevant doctext.

Comment 220 Dave Botsch 2018-01-08 19:29:40 UTC
Hi. 
Some change in the virtualization layer seems to have broken earlier versions of the QXL WDDM driver with Server2012R2. Ie, when trying to boot an install of Server2012R2, qemu-kvm quits with a SIGABRT. Version 0.18 of the driver does not appear to have an appropriate signature for Server2012R2, which earlier versions of the QXL WDDM driver evidently did.

Please appropriately sign version 0.18 or newer of qxl wddm so that one can try this version of the driver under Server 2012R2 (and see if the crash is fixed or if something is fundamentally broken someplace else in the qemu-kvm virt layer). The Guest OS is not very usable with the basic MS display driver.

Thanks.

Comment 227 errata-xmlrpc 2018-05-15 17:59:41 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2018:1531


Note You need to log in before you can comment on or make changes to this bug.