Created attachment 699572 [details]
Garbled 16-bpp display with QXL+VNC
Description of problem:
I installed the QXL driver in a Windows XP SP2 QEmu/KVM VM. If I change the color depth to 16 bits per pixel the display becomes garbled (see attached screenshot). This is the case even if I tell Windows to reboot before applying the changes, and even after extra reboots.
However this problem goes away if I change from '<graphics type='vnc'.../>' to '<graphics type='spice'.../>'.
It's hard to tell where the problem comes from. The fact that changing from VNC to Spice fixes the issue makes me think the problem lies in virt-manager (or nearby). But changing the driver (while keeping the qxl graphics card) also fixes the issue so it may also be the Windows QXL driver.
Version-Release number of selected component (if applicable):
The VM is running in QEmu/KVM on a 64-bit Debian host.
Steps to Reproduce:
1. Configure a Windows XP VM using the QXL driver.
2. Set up the remote diplay to '<graphics type='vnc'.../>'.
3. Connect to the VM using virt-manager.
4. In the VM, change the screen depth to 'Medium (16 bit)'.
5. Apply the changes (with or without rebooting).
See screenshot. Note that the mouse pointer is off too.
Normal 16-bpp display, just like when using either Microsoft's standard VGA driver or Spice to connect to the VM display.
* 32-bit Windows XP Professional SP2 straight from CD, no windows updates.
* The driver was installed from spice-guest-tools-0.3.exe which seems to ship a QXL driver built from this commit: 5020ad9f4a54d632daca3ccbc5522e3d44909c33
* The screenshot was taken with virt-manager.
Sorry this bug didn't get a response earlier.
virt-manager likely is not strictly at fault here: this is either a driver, qemu, or spice stack issue. Unfortunately it's hard to track down further since those three bits are all heavily intertwined.
My recommendation would be to try and reproduce with the latest versions of verything: qxl driver, qemu, and spice. Make sure you can reproduce with at least two spice clients (virt-manager and virt-viewer will do it). Then file an upstream spice-gtk bug for further triaging.
Closing this bug as CANTFIX strictly because I'm quite certain virt-manager is not at fault here, since all its spice handling is through spice-gtk