July 19, 20242 yr Ok after much trial and error I have finally got the UWP Roblox version to run on my Win11 VM, running on a Intel 11700k cpu. My 2080ti GPU, NVME SSD & MB NIC are bond to VFIO also. Please understand I am by no means an expect and it’s been the hard work of others that have got me this far, It’s been nothing but guessing and trial and error on my end….lol Basically, when opening UWP Roblox, it starts but then closes after 20secs with no error etc. So, I applied XML edits that removed the “Virtual Machine” flag from Task manger but still same issue. So after scouring through the Unraid forums and google I found information regarding <qemu:commandline> XML commands found here https://github.com/zhaodice/qemu-anti-detection/issues/56 Basically, if the “model=0” was applied to the (added) <qemu:commandline> commands within the XML it allowed Roblox to work but with severe performance losses all round making the VM unusable. Further scouring lead, me to which allowed me to change the “model” without the <qemu:commandline> commands section. So, a big SHOUT!!! out to @mackid1993 who’s hard efforts got me the result I required once again. What I ended up doing was changing the </cpu> section of the xml based on the information provided from running the “virsh capabilities” cmd within the unraid console which revealed “<model>Skylake-Client-noTSX-IBRS</model>” but “-noTSX-IBRS” section resulted in severe VM performance loss also. Changing it to <model fallback='allow'>Skylake-Client</model> has resulted in everything working better than it has ever before in my VM, seriously no joke, everything just works better now, I’m now seeing the AAA games really pushing the GPU now instead of the CPU maxing out. I have no idea why this is the case but it’s working. So, I’m sharing what has worked for me in the hope it helps others @bmartino1 My original ,cpu> xml section was: <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='4' threads='2'/> <cache mode='passthrough'/> </cpu> Which now is the following: <cpu mode='custom' match='exact' check='none'> <model fallback='allow'>Skylake-Client</model> <topology sockets='1' dies='1' cores='4' threads='2'/> <feature policy='disable' name='hypervisor'/> <feature policy='require' name='vmx'/> </cpu> The <feature policy='disable' name='hypervisor'/> from what I understand removed the Virtual Machine Flag seen in Task Manger and is required for Roblox to work <feature policy='require' name='vmx'/> This allows virtualization to be run within the VM, I require this to run “Bluestacks android emulator” Hope this helps others! Edited July 19, 20242 yr by wacko37
August 1, 20241 yr Author Further testing of this VM setup has brought about other issues as I'm now having severe stability issues on the VM when gaming with this "custom" CPU passthrough method. I have discussed this issue on another thread I'm not exactly sure why but after 20+ mins of solid gaming without any issues the VM starts to lag hard, it never locks up totally but FPS drop to 10 FPS. Sometimes the VM recovers after few minutes but it quickly drops to 10fps again, other times the FPS drop and then starts bouncing between 10 to 60fps ( have set a global limit of 60fps ) but it never fully recovers in any games until a fully shutdown and reboot of the VM. There seems to be no specific reason for it, as the VM was working absolutely perfectly with heavy loads before the FPS drops. Changing settings within the game has zero effect on this outcome or how the VM runs in general. I've mainly been using GTA5 to test but it doesn't matter the game at all. I reverted back to the standard CPU “host-passthrough” mode applied by default in Unraid to test. I can see the moments where the VM starts to struggle but it always recovers quickly and FPS come back up, settings within the game most definitely have an effect on stability in this type of CPU passthrough. I'm stuck in a conundrum, with default CPU mode = host-passthrough my VM is stable and works a treat but Roblox crashes after 20sec without error. On the other hand, with CPU mode = custom Roblox works ok but my VM has delayed stability issues causing lagging in any game. I have very limited understanding of what these CPU modes are actually doing to allow Roblox to work. Is there anyone here with the expertise/knowledge that could help explain or even fix this issue I’m now faced with. I truly believe somehow its possible to retain “host-passthrough” mode and apply some sort of tweak that would appease Roblox.
September 17, 20241 yr Author Solution Hi Community, back again but this time it’s very good news. Basically, I’ve gone full circle and now back on (<cpu mode='custom') I’ve been running this setup for 3-4 weeks now and everything is working perfectly with zero instability across all games. When the VM is idle the resource usage almost nothing….. FINALLY a perfect VM!!! Roblox is working via the Windows Store app as mention above, so the kids are over the moon. Long story short, “Unraid Share Mode: VirtioFS Mode” was the culprit here and was causing the system to randomly lock up. Once removed all my issues were resolved and as mentioned the VM idle resources are back to near zero. I’m glad in a way, as its forced me to learn more about the XML view by adding necessary features and pinning “emulatorpin” & “iothreadpin” which have also helped drastically with stability. I have attached my XML and will now be marking this thread as resolved. <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Windows 11</name> <uuid>351920c1-41b7-abf6-86a9-df25e7703fa5</uuid> <description>Windows 11 - Gaming VM</description> <metadata> <vmtemplate xmlns="unraid" name="Windows 11" icon="windows11.png" os="windowstpm"/> </metadata> <memory unit='KiB'>10485760</memory> <currentMemory unit='KiB'>10485760</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>6</vcpu> <iothreads>2</iothreads> <cputune> <vcpupin vcpu='0' cpuset='5'/> <vcpupin vcpu='1' cpuset='13'/> <vcpupin vcpu='2' cpuset='6'/> <vcpupin vcpu='3' cpuset='14'/> <vcpupin vcpu='4' cpuset='7'/> <vcpupin vcpu='5' cpuset='15'/> <emulatorpin cpuset='2-4,10-12'/> <iothreadpin iothread='1' cpuset='2-4,10-12'/> <iothreadpin iothread='2' cpuset='2-4,10-12'/> </cputune> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-q35-7.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader> <nvram>/etc/libvirt/qemu/nvram/d566211d-a3fe-da18-b5e2-8ec98fd0e29e_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='custom' match='exact' check='full'> <model fallback='allow'>Skylake-Client</model> <topology sockets='1' dies='1' cores='3' threads='2'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> <feature policy='disable' name='mpx'/> <feature policy='require' name='vmx'/> <feature policy='require' name='hypervisor'/> </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='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/ISOs/Win11_23H2_EnglishInternational_x64v2.iso'/> <target dev='hda' bus='sata'/> <readonly/> <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/ISOs/virtio-win-0.1.248-1.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <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='pci' index='6' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='6' port='0x15'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/> </controller> <controller type='pci' index='7' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='7' port='0x16'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/> </controller> <controller type='pci' index='8' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='8' port='0x17'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/> </controller> <controller type='pci' index='9' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='9' port='0x18'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/> </controller> <controller type='pci' index='10' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='10' port='0x19'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/> </controller> <controller type='pci' index='11' model='pcie-to-pci-bridge'> <model name='pcie-pci-bridge'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </controller> <controller type='pci' index='12' model='pcie-root-port'> <model name='pcie-root-port'/> <target chassis='12' port='0x1a'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </controller> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/> </controller> <controller type='usb' index='0' model='qemu-xhci' ports='15'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:19:a0:d0'/> <source bridge='br0.1'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x02' 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'/> <tpm model='tpm-tis'> <backend type='emulator' version='2.0' persistent_state='yes'/> </tpm> <audio id='1' type='none'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x2'/> </source> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x3'/> </source> <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x0e' slot='0x00' function='0x0'/> </source> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/> </hostdev> <memballoon model='none'/> </devices> <seclabel type='dynamic' model='dac' relabel='yes'/> </domain> Edited September 17, 20241 yr by wacko37 Put XML in code format
September 24, 20241 yr Author 3 hours ago, Air69 said: Where do you put this XML stuff? When you create/edit a VM, the is a option on the top right corner that says "XML View" select that. Sadly it's not a simple as copy and pasting my XML from above. You will need to edit to suit your hardware/setup.
September 25, 20241 yr 12 hours ago, wacko37 said: When you create/edit a VM, the is a option on the top right corner that says "XML View" select that. Sadly it's not a simple as copy and pasting my XML from above. You will need to edit to suit your hardware/setup. Thanks, also which VM are you using? I was using VMware workstation pro would this work?
September 25, 20241 yr Author 4 minutes ago, Air69 said: Thanks, also which VM are you using? I was using VMware workstation pro would this work? Sadly o have no experience with VMware workstation pro, I'm using the default VM manger within Unraid.
October 20, 20241 yr can you tell me what you added and edited, the above config is based on your machine i dont know what code can be used to apply to my machine, do you have discord or email or social media site where we can chat i have a project that needs to be related, i will pay if you agree to help
October 21, 20241 yr Author 19 hours ago, Cris2323 said: can you tell me what you added and edited, the above config is based on your machine i dont know what code can be used to apply to my machine, do you have discord or email or social media site where we can chat i have a project that needs to be related, i will pay if you agree to help Everything I can help you with is mentioned in my posts above. In short changing the CPU mode to custom from host-passthrough allowed Microsoft version of Roblox to work for me. Is your CPU is AMD? If so I'm sorry I have no knowledge using AMD.
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.