My goal: (pass and) let 1 Windows VM and 1 Ubuntu/Debian VM use my hosts Intel Quick Sync Video at the same time for video encoding/decoding/transcoding. I do not need display output for the VM('s), it would be nice but I like having VGA access to the console better.
Environment (that matters for the thread):
I am still stuck with some issues, some bigger than the other:
In the end my goal is technically still reached; Intel Quick Sync Video works, at least in the Windows 10 VM. I haven't tried the Ubuntu/Debian VM, but I can't imagine it being more of a ***** than Windows.
However those BSOD's are highly undesirable from "cold boots" and I would like to be able to solve this issue. The pointer alignment is still workable but also undesirable. The error messages in the console are of lesser concern.
Environment (that matters for the thread):
- CPU: Intel Core i7 10700
- MB: Gigabyte H470 HD3 [fw: F2] (VT-d enabled in BIOS, no VT-x option found)
- Proxmox: 6.3-3
- Altered and updated grub (
nano /etc/default/grub
) toGRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"
.
Thenupdate-grub
,update-initramfs -u -k all
,reboot
. dmesg | grep -e DMAR -e IOMMU
:DMAR: IOMMU enabled
- Added (
nano /etc/modules
) kernel modules thenreboot
again:
Code:vfio vfio_iommu_type1 vfio_pci vfio_virqfd kvmgt #exngt vfio-mdev
exngt
according to source, but disabled due to error insystemctl status systemd-modules-load.service
. ls /sys/bus/pci/devices/0000\:00\:02.0/mdev_supported_types/
:i915-GVTg_V5_4 i915-GVTg_V5_8
- Add
i915-GVTg_V5_8
PCI device to Windows 10 VM (with virtio-serial, qemu-ga-x86_64.exe and virtio-win-gt-x64.msi installed, from ISO version 0.1.185) - Windows 10 VM automatically recognizes the PCI device and installs the Intel UHD Graphics 630
- The iGPU shows up in Task Manager and using Handbrake to transcode a H.264 or H.265 video with Intel Quick Sync actually works!
I am still stuck with some issues, some bigger than the other:
- When I reboot the Windows 10 VM from itself (Start > Power > Reboot), no problem.
When I shutdown the Windows 10 VM from itself (Start > Power > Shutdown), and I then start the Windows 10 VM from the Proxmox GUI: I get a BSOD in the VM regardingVIDEO_TDR_FAILURE
andigdkmd64.sys
. It then reboots after the BSOD collection and boots fine into a workable Windows with iGPU. This issue seems to only apply to "cold boots".
So far I've tried:- Setting
TdrDelay
andTdrDdiDelay
in (regedit)HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
to a higher value (no effect). - Setting (same regedit as above)
TdrDebugMode
to1 (TDR_DEBUG_MODE_IGNORE_TIMEOUT)
(effect: no more auto reboot). - I've tried using
i440fx
,q35
,pc-q35-3.1
,pc-q35-4.0.1
(no effect). - Blacklisting the nouveau driver on the Proxmox host
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
(no effect, VGA console also still works).
- Setting
- Every time the Windows 10 VM is started "cold" I get some nice "error" messages in the VGA console:
Code:gvt: vgpu 1: write invalid HWSP address, reg:xxxx, value:xxxx gvt: vgpu 1: fail to emulate MMIO write xxxxxx len 4 gvt: vgpu(1) Invalid FORCE_NONPRIV write xxxxxx at offset xxxx Detected your guest driver doesn't support GVT-g. Now vgpu 1 will enter failsafe mode.
Code:gvt: vgpu(1) Invalid FORCE_NONPRIV write xxxxxx at offset xxxx
- As soon as the Intel UHD Graphics 630 drivers are installed the alignment with the mouse pointer in noVNC is off on the horizontal-axis. It is accurate to the left side, but drifts further away when going to the right. I have found multiple topics on this matter that mostly point towards the Guest Agent, which is installed. I haven't tried using spice with the iGPU working and I would like to stick to noVNC.
In the end my goal is technically still reached; Intel Quick Sync Video works, at least in the Windows 10 VM. I haven't tried the Ubuntu/Debian VM, but I can't imagine it being more of a ***** than Windows.
However those BSOD's are highly undesirable from "cold boots" and I would like to be able to solve this issue. The pointer alignment is still workable but also undesirable. The error messages in the console are of lesser concern.
Last edited: