April 28, 20224 yr Running 6.9.2 -- AMD Ryzen 5900X, 128GB RAM, RX580, many drives. The VM concept is a new one for me, but, I'm excited to see what I can do with it. I've created a new Win 10 Pro VM (XML below). Nutshell, 4 CPUs and the HT cores, 16GB Ram, Q35-5.1, OVMF I started by using the VNC graphics card - everything worked fine (changed the resolution in RDC app to support fullscreen 3440x1440) and installed Adrenaline 22.4.2 . I've enabled passthrough of the RX 580 (and edited the XML to have the audio use the same bus (different function). Everything seems to be working fine, except I'm getting an error in Passmark when I try to run the 3D Mark test. The PassMark DirectX Testing Suite modal box says:: Invalid video mode. The resolution and color depth you have selected do not appear to be valid for hardware acceleration. {more of same} Error code D3DERR_INVALIDCALL. It looks like it's working fine in the VM -- but, this error gives me pause. Thanks in advance. ----- <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Windows 10</name> <uuid>ff717c28-cd8c-2b7f-c50c-ae2da2a2906a</uuid> <description>UnraidWindows</description> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>16777216</memory> <currentMemory unit='KiB'>16777216</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>8</vcpu> <cputune> <vcpupin vcpu='0' cpuset='5'/> <vcpupin vcpu='1' cpuset='17'/> <vcpupin vcpu='2' cpuset='7'/> <vcpupin vcpu='3' cpuset='19'/> <vcpupin vcpu='4' cpuset='9'/> <vcpupin vcpu='5' cpuset='21'/> <vcpupin vcpu='6' cpuset='11'/> <vcpupin vcpu='7' cpuset='23'/> </cputune> <os> <type arch='x86_64' machine='pc-q35-5.1'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/ff717c28-cd8c-2b7f-c50c-ae2da2a2906a_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='4' threads='2'/> <cache mode='passthrough'/> <feature policy='require' name='topoext'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </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'/> <source file='/mnt/user/domains/Windows 10/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <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/Windows/Windows 10 x64.iso'/> <target dev='hda' bus='sata'/> <readonly/> <boot order='2'/> <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.217.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='pci' index='1' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='1' port='0x10'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='2' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='2' port='0x11'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/> </controller> <controller type='pci' index='3' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='3' port='0x12'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/> </controller> <controller type='pci' index='4' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='4' port='0x13'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/> </controller> <controller type='pci' index='5' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='5' port='0x14'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <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'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:1c:bf:c9'/> <source bridge='br0'/> <model type='virtio-net'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2b' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x2b' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/> </hostdev> <memballoon model='none'/> </devices> </domain> Edited April 28, 20224 yr by Nomad32
April 28, 20224 yr Author Sorry - yes. I edited the original post to include this: (changed the resolution in RDC app to support fullscreen 3440x1440) and installed Adrenaline 22.4.2
April 28, 20224 yr I think that rdp breaks Direct3d, I'm quite sure that if you run the test directly (without remote desktop) it will pass (maybe you also need to disable remote desktop at all). If this is the case, nothing to worry about, passmark is running the test on the virtual adapter of rdp instead of the actual gpu. Edited April 28, 20224 yr by ghost82
April 28, 20224 yr Author How will I use RDC to play games that run on the desktop of the virtual machine, if remote desktop breaks Direct3d? I tried killing the RDP connection, while running the test, and it errored out at the same point in the test. Sorry if this is coming across as stupid - but, I'm bummed that I can't sort this in my head?
April 28, 20224 yr Sorry if I wasn't clear, I mean that this should be an issue with the passmark software and the way remote desktop works. You will not have issue in playing games via rdp if the video accelaration runs on the gpu. For the test, I meant to attach a monitor to the gpu, delete any video virtual adapter created by remote desktop and run the benchmark in this way if you want to be 100% sure that the issue is caused by rdp/passmark. Edited April 28, 20224 yr by ghost82
April 28, 20224 yr You could also try this: https://dannyda.com/2021/05/28/how-to-enable-gpu-rendering-on-windows-10-and-windows-server-2019-for-windows-remote-desktop-protocol-rdp/ Edited April 28, 20224 yr by ghost82
April 28, 20224 yr Author I edited the registry to change the setting stated. No change on the test (after a restart). Basically - you're saying that the graphics card should work for most things, but that the test is flawed? I'll go ahead and install a game in the VM and use the monitoring tools to see if it can prove it's working correctly.
April 28, 20224 yr 12 minutes ago, Nomad32 said: Basically - you're saying that the graphics card should work for most things, but that the test is flawed? Yes, I think so.
April 29, 20224 yr Author Perfect! Thank you! I was able to install Witcher 3 and play it for 30 seconds. The only video card in the VM is the AMD from the machine pass through (not one embedded in the processor) - so, I can confirm that it looks/plays pretty well. I was getting grainy images in remote desktop, so, I installed Parsec and so far, so good. I'll continue playing - but, thank you for talking me off the edge.
April 29, 20224 yr Author Update! I tried the test again, running in Parsec, and it completed just fine! Edited April 29, 20224 yr by Nomad32
April 29, 20224 yr Great!Yes the test completes successfull because parsec is different than remote desktop; remote desktop is a protocol. I'm quite sure that the test will complete also with vnc server/client. With remote desktop video accelaration runs on gpu and the video is rendered by the rdp driver, then the "rendered images of the desktop" are transmitted to the rdp client.
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.