virtio-win / virtio-win-guest-tools-installer

121 stars 19 forks source link

qxldod device removed by virtio-win-gt-x64.msi #31

Open kevinoid opened 2 years ago

kevinoid commented 2 years ago

On a VM with a QXL video device (and without a virtio-gpu device) running Windows 10.0.19043.1466 with qxldod.sys 10.0.0.21000 from QxlWddmDod_0.21.0.0_x64.msi, if viogpudo is selected when running virtio-win-gt-x64.msi from virtio-win-0.1.215-1, as it is by default, the "Red Hat QXL controller" display adapter with qxldod.sys is replaced by "Microsoft Basic Display Adapter" with BasicDisplay.sys. Is this the expected behavior?

In retrospect it makes some sense, given viogpudo is likely incompatible with qxldod. If this is the case, perhaps a warning would be appropriate?

Thanks, Kevin

vrozenfe commented 2 years ago

virtio-gpu device can be running in vga mode. This is the default mode unless virtio-gpu device is explicitly switched to virtio-gpu mode. When virtio-qpu device in VGA mode it is fully compatible with VGA spec and capable to work under contol of the in-box BDD driver provided by Microsoft.

Best, Vadim.

kevinoid commented 2 years ago

Neat! That's a great feature to have.

To clarify, the virtual machine is configured with a QXL device rather than a virtio-gpu device:

<video>
  <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
  <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>

Should the installer remove the qxldod.sys driver for this device? (Or is it indistinguishable from a virtio-gpu device?)

vrozenfe commented 2 years ago

Both qxl and virtio-qpu devices have different hardware ids. So, the installer cannot install viogpudo.sys driver on top of qxl device. But installer can install virtio-gpu driver for the future usage (so-called software-first installation) even if the virtio-gpu device is not present in the system at the moment. In this case, if you decided to switch from qxl to virtio-gpu later, there is need in running the installer again, because the relevant driver is already pre-installed in the system.

kevinoid commented 2 years ago

Thanks for the detailed explanation @vrozenfe! That makes a lot of sense and sounds like a great feature.

So we are agreed that the installer removing the qxldod.sys driver from the QXL device is a bug? Is there anything else I can do to help debug?

vrozenfe commented 2 years ago

Just to confirm with you.

If this is the case, please post the qemu command line. We need to ask QE to reproduce this issue.

Best, Vadim.

kevinoid commented 2 years ago

That's correct. Unfortunately, after several attempts, I'm not able to reproduce the issue in a fresh VM. It may require installing a version of the virtio-drivers Chocolatey package, which I had previously used, or a particular installation order, or something else.

I do have a snapshot of the affected machine on which I can reliably reproduce the issue. If there's anything I can do to investigate further, let me know. Otherwise, feel free to close.