You can repeat this as many times as you want with different GUIDs. # echo "$GVT_GUID" > "/sys/devices/pci$/$GVT_PCI/mdev_supported_types/$GVT_TYPE/create" Use the GUID you have created to create a virtual GPU with a chosen type: Pick a type you want to use - we will refer to it as $GVT_TYPE below. Note: If the directory is presented but contains nothing, you may try to increase the AGP aperture size in your computer firmware. A single virtual GPU can be assigned only to a single virtual machine - create as many GUIDs as you want virtual GPUs.
Generate a virtual GPU GUID ( $GVT_GUID in commands below) which you will use to create and assign the virtual GPU. It looks like this: 0000:00:02.0 - you can look it up by running lspci -D -nn, looking for VGA compatible controller: Intel Corporation HD Graphics. Find the PCI address and domain number of your GPU ( $GVT_PCI and $GVT_DOM in commands below), as it resides in /sys/bus/pci/devices. Add i915.enable_guc=0 to kernel parameters, see warning at Intel graphics#Enable GuC / HuC firmware loading. Set i915 module parameter enable_gvt=1 to enable GPU virtualization. Enable kernel modules: kvmgt, vfio-iommu-type1 and mdev. Enable IOMMU by adding intel_iommu=on to your kernel parameters. (The virtual GPU actually does need specialized drivers to work correctly, but all the required changes are present in the latest upstream Linux/Windows drivers.) #Qemu vga passthrough install
The guest with a virtual GPU sees it as a "regular" GPU - just install the latest native drivers. You will have to create a virtual GPU first, then assign it to your virtual machine.
5.8 quickly setting a resolution in a windows guest. 5.7 Changing the display resolution of virtual GPU. 5.6 Host hanging when trying to suspend. 5.3 Using Intel GVT-G in combination with PRIME render offload. 5.2 Windows hanging with bad memory error. 5.1 Missing mdev_supported_types directory. 4.3 Output using SPICE with NVIDIA EGL or VNC.
2 Assign a virtual GPU to the virtual machine.