January 23, 20251 yr Hello, I’m using a WIN11 VM as a gaming VM, which worked perfectly with an RTX 2070 and then an RTX 4060 Ti. I recently acquired an RTX 3080, but unfortunately, I haven’t been able to get the VM to work properly with this GPU. Here’s everything I’ve tried so far: Dumping the VBIOS Modifying the XML using this post: https://forums.unraid.net/topic/129879-issue-with-windows-11-vm-rtx-3090-ti-passthrough/#comment-1182846 Deleting and recreating the libvirt.img Completely recreating the VM Activate "Rezisable BAR" (seems not compatible because it is always disabled. Although I activated it in bios). So far, nothing has worked—performance remains terrible. The only thing I’m certain of is that there’s an issue with the drivers. As soon as I uninstall all Nvidia drivers, the VM becomes perfectly smooth without any lag. However, when I install either recent or older drivers, everything slows down again. Without Nvidia drivers, only RDP works. Moonlight or Parsec won’t launch, and of course, games are impossible to run. I would really appreciate it if you have any ideas. I’ve been stuck on this for two weeks now, and it’s driving me crazy! <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm' id='7' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>VM-Gaming1</name> <uuid>8aaddd7a-7582-4f90-e765-5bda4323ddc6</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 11" icon="windows11.png" os="windowstpm" webui="" storage="default"/> </metadata> <memory unit='KiB'>32505856</memory> <currentMemory unit='KiB'>32505856</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>12</vcpu> <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='16'/> <vcpupin vcpu='2' cpuset='1'/> <vcpupin vcpu='3' cpuset='17'/> <vcpupin vcpu='4' cpuset='2'/> <vcpupin vcpu='5' cpuset='18'/> <vcpupin vcpu='6' cpuset='3'/> <vcpupin vcpu='7' cpuset='19'/> <vcpupin vcpu='8' cpuset='4'/> <vcpupin vcpu='9' cpuset='20'/> <vcpupin vcpu='10' cpuset='5'/> <vcpupin vcpu='11' cpuset='21'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-9.1'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader> <nvram>/etc/libvirt/qemu/nvram/8aaddd7a-7582-4f90-e765-5bda4323ddc6_VARS-pure-efi-tpm.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vpindex state='on'/> <synic state='on'/> <stimer state='on'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' clusters='1' cores='6' threads='2'/> <cache mode='passthrough'/> <feature policy='require' name='topoext'/> </cpu> <clock offset='localtime'> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback' discard='ignore'/> <source file='/mnt/vm-gaming-pricipale/vdisk1.img' index='3'/> <backingStore/> <target dev='hdc' bus='virtio'/> <serial>vdisk1</serial> <boot order='1'/> <alias name='virtio-disk2'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/Win11_24H2_French_x64.iso' index='2'/> <backingStore/> <target dev='hda' bus='sata'/> <readonly/> <boot order='2'/> <alias name='sata0-0-0'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/virtio-win-0.1.266-1.iso' index='1'/> <backingStore/> <target dev='hdb' bus='sata'/> <readonly/> <alias name='sata0-0-1'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='pci' index='0' model='pcie-root'> <alias name='pcie.0'/> </controller> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x8'/> <alias name='pci.1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x9'/> <alias name='pci.2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0xa'/> <alias name='pci.3'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0xb'/> <alias name='pci.4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/> </controller> <controller type='pci' index='5' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='5' port='0xc'/> <alias name='pci.5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/> </controller> <controller type='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0xd'/> <alias name='pci.6'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/> </controller> <controller type='pci' index='7' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='7' port='0xe'/> <alias name='pci.7'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x6'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb'/> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:96:c0:1b'/> <source bridge='br0'/> <target dev='vnet6'/> <model type='virtio-net'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/run/libvirt/qemu/channel/7-VM-Gaming1/org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='keyboard' bus='ps2'> <alias name='input1'/> </input> <tpm model='tpm-tis'> <backend type='emulator' version='2.0' persistent_state='yes'/> <alias name='tpm0'/> </tpm> <audio id='1' type='none'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </source> <alias name='hostdev0'/> <rom file='/mnt/user/system/vbios/RTX3080.rom'/> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/> </source> <alias name='hostdev1'/> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x1'/> </hostdev> <watchdog model='itco' action='reset'> <alias name='watchdog0'/> </watchdog> <memballoon model='none'/> </devices> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+0:+100</label> <imagelabel>+0:+100</imagelabel> </seclabel> <qemu:commandline> <qemu:arg value='-fw_cfg'/> <qemu:arg value='opt/ovmf/X-PciMmio64Mb,string=65536'/> </qemu:commandline> </domain> VM-Gaming1.log Edited January 26, 20251 yr by thymon
January 25, 20251 yr So I've struggled with this numerous times where suddenly my VM starts running like crap. First, ensure all the energy-saving options are off or switched to performance in your bios. My Asus bios on my Asus Z790 and my Asus X670E were both set for an energy-saving mode which caused performance issues. Second, use Moonlight/Sunshine for gaming from a VM. You can't beat the low latency they offer. Third, (This is one I just discovered) go into your Windows settings and search "Core Isolation" and turn off "Memory Integrity" & "Local Security Authority protection". If I have those two enabled my VM runs like dog shit. Restart the VM and give it a go. I've been struggling with Unraid Win 11 VMs for almost 2 years now and finally have mine running smooth as butter. I have a passthrough NIC, passthrough NVME drive, I extracted my vDisk so my NVME is formatted in NTFS so if I ever want to move my NVME into a bare metal build I would just plop it in. I have a Bluetooth dongle passed through so I can Steam games to my Nvidia Shield Pro onto the TV with multiple controllers connected to the VM directly so we can play games as a family. Unraid 7.0.0 has made it as simple as can be to pass through USB-connected devices to the VM. @N3z has made a solid guide on how to get the best performance out of your Win 11 VM but it needs some updating though.... VM Passthrough Guide
January 26, 20251 yr Author Solution So, in the end, I’m the real idiot... The GPU didn’t fit in my case, so I used a PCIe extension cable. Right from the start, I suspected the cable, so I tested it with my RTX 4060 Ti. It worked perfectly. But I just realized that the cable is GEN3, while the RTX 3080 is GEN4. So, I forced GEN3 in the BIOS, and now everything works perfectly! I’ve now ordered a GEN4 cable LOL
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.