December 13, 20241 yr 7 hours ago, SimonF said: I have been able to make some progress with VirGL and have a working solution. Currently working thru deps to add into OS and the Gui changes needed to support. Also will add to gpustat to should QEMU is using the GPU. This should in theory allow simultaneous use of a physical GPU on multiple docker containers, and multiple VMs using VirGL... as everything runs as a host process. Great work!
December 13, 20241 yr Author I have working GUI changes and have been testing with two VMs to the same GPU(ARC770) Only support currently in Linux VMs. Glmark2 results for VM with the GPU passed thru and via virgl. Passthru ======================================================= glmark2 2021.02 ======================================================= OpenGL Information GL_VENDOR: AMD GL_RENDERER: AMD Radeon RX 6400 (radeonsi, navi24, LLVM 15.0.7, DRM 3.57, 6.8.0-49-generic) GL_VERSION: 4.6 (Compatibility Profile) Mesa 24.3.0-devel (git-9fc8668b66) ======================================================= ======================================================= glmark2 Score: 14334 ======================================================= Virgl ======================================================= glmark2 2021.02 ======================================================= OpenGL Information GL_VENDOR: Mesa GL_RENDERER: virgl (AMD Radeon Graphics (radeonsi, navi24, LLVM 19.1.5, ...) GL_VERSION: 4.3 (Compatibility Profile) Mesa 24.3.0-devel (git-9fc8668b66) ======================================================= ======================================================= glmark2 Score: 542 ======================================================= I don't have any time scales for inclusion into the OS but will not be in 7.0 likely 7.1 or 7.2 I would be happy to include packages required to make it work in this thread and instructions for the xml if any one is interested. Note this is experimental, my test qemu package is 9.2.0 which is greater than stock 9.1.0 GUI Changes. Example XML <graphics type='spice' autoport='yes' listen='0.0.0.0'> <listen type='address' address='0.0.0.0'/> </graphics> <graphics type='egl-headless'> <gl rendernode='/dev/dri/by-path/pci-0000:03:00.0-render'/> </graphics> <audio id='1' type='none'/> <video> <model type='virtio' heads='1' primary='yes'> <acceleration accel3d='yes'/> </model> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </video> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' sharePolicy='ignore'> <listen type='address' address='0.0.0.0'/> </graphics> <graphics type='egl-headless'> <gl rendernode='/dev/dri/by-path/pci-0000:00:02.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='virtio' heads='1' primary='yes'> <acceleration accel3d='yes'/> </model> <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/> </video> Drivers and RenderGPU added to VM View.
December 14, 20241 yr Author Here are the packages if you would like to try on a TEST system. This would need to be on unraid 7rc1. If you have any issue you can reboot to return to stock. Copy to your system and run installpkg for each of them. VM Settings should show vers 9.2.0 You will have to do a manual edit for the xml You should not change the existing spice or VNC graphics section. Add this after the spice/VNC one. Change the PCI ID to match your GPU. You will need to have the drivers loaded on the host. <graphics type='egl-headless'> <gl rendernode='/dev/dri/by-path/pci-0000:03:00.0-render'/> </graphics> In the video section add the accel3d line. <video> <model type='virtio' heads='1' primary='yes'> <acceleration accel3d='yes'/> </model> </video> mesa-24.3.0-x86_64-2.txz qemu-9.2.0-x86_64-1cf_LT.txz virglrenderer-1.1.0-x86_64-1_SFo.tgz
December 18, 20241 yr It would be nice to have a VM manager GUI option to increase the video memory for the QXL video driver. The default <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> is not enough to support high resolutions. I use <model type='qxl' ram='65536' vram='131072' vram64='131072' vgamem='65536' heads='1' primary='yes'/> in my VM config. Something simple that sets these values appropriate for high resolutions would be a nice option.
December 19, 20241 yr Author On 12/18/2024 at 6:40 AM, Ancalagon said: It would be nice to have a VM manager GUI option to increase the video memory for the QXL video driver. The default <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> is not enough to support high resolutions. I use <model type='qxl' ram='65536' vram='131072' vram64='131072' vgamem='65536' heads='1' primary='yes'/> in my VM config. Something simple that sets these values appropriate for high resolutions would be a nice option. Still looking at options, but propose something like this. Not tested mulitple screens/heads so may not include.
December 30, 20241 yr Please add support for startup delay of vms just like docker. Currently, have unraid boot set to use the ipmi display as i have a Windows 11 vm passed though to the gpu. So when the server starts, you see the text scrolling up then freezes as the vm is then starting up. Would be a lot nicer to add a 30-second delay to show the unraidserver has booted and the ip address listed then the vm starts up, switching the display over to the Windows vm.
December 30, 20241 yr Author 1 hour ago, Goldmaster said: Please add support for startup delay of vms just like docker. Currently, have unraid boot set to use the ipmi display as i have a Windows 11 vm passed though to the gpu. So when the server starts, you see the text scrolling up then freezes as the vm is then starting up. Would be a lot nicer to add a 30-second delay to show the unraidserver has booted and the ip address listed then the vm starts up, switching the display over to the Windows vm. Is GPU bound to vfio? As that driver loading will remove screen from server. Auto start for VMs is handled by libvirt not by Unraid. Option is to create a user script with a delay i.e. sleep 30 and then run virsh start VMName
December 30, 20241 yr 24 minutes ago, SimonF said: Is GPU bound to vfio? I cant see any sign that it is. Looking at the hardware profile, I don't see the words this `This controller is bound to vfio, connected drives are not visible.` next to the gpu. 24 minutes ago, SimonF said: Auto start for VMs is handled by libvirt not by Unraid. Could unraid (or myself) put in a feature request upstream for it to be added. So that in future the feature gets added, and thus unraid would be able to add support? For the time being, I guess i write, set script to run at startup of first array only and turn off auto start option sleep 30 virsh start "Windows 11" Edited December 30, 20241 yr by Goldmaster
December 30, 20241 yr Author 3 hours ago, Goldmaster said: cant see any sign that it is. Looking at the hardware profile, I don't see the words this `This controller is bound to vfio, connected drives are not visible.` next to the gpu. It would be if you have check the box next to the gpu in system devices.
December 30, 20241 yr 4 hours ago, SimonF said: It would be if you have check the box next to the gpu in system devices. In that case it's not, I did post about the slight issue here https://forums.unraid.net/topic/183704-no-boot-screen-display-until-windows-login-but-system-and-vm-boots-fine/#comment-1503667
December 31, 20241 yr On 10/5/2024 at 10:11 AM, SimonF said: There is a feature being looked at for a future release which is integrated backups, VMs would be part of that. This should go with our saying, but if export/backup is included, please be sure to include import/restore. The backup restoration script from @petchav works great but not without the occasional hiccup.
January 2, 20251 yr On 12/14/2024 at 7:04 PM, SimonF said: You will have to do a manual edit for the xml You should not change the existing spice or VNC graphics section. Add this after the spice/VNC one. Change the PCI ID to match your GPU. You will need to have the drivers loaded on the host. Sorry for the question: Which and where is the XML file I need to edit? In the Settings->VM Manager page there is no option to display and edit the configuration as XML? I am highly interested in VirGL so....... (P.s. I changed my account when buying Unraid but I am the one you made happy with the LCD Manager .....😁) Edited January 2, 20251 yr by bernieJo
January 2, 20251 yr Community Expert 12 minutes ago, bernieJo said: Sorry for the question: Which and where is the XML file I need to edit? In the Settings->VM Manager page there is no option to display and edit the configuration as XML? Use the switch at the top right to switch to Form View.
January 2, 20251 yr 44 minutes ago, itimpi said: Use the switch at the top right to switch to Form View. Which switch ?? The one on top only changes between form and basic view, no xml available..
January 2, 20251 yr 2 minutes ago, bernieJo said: Which switch ?? The one on top only changes between form and basic view, no xml available.. This one but when you're editing a VM, not in the VM manager settings... Edited January 2, 20251 yr by Kilrah
January 2, 20251 yr Author 7 hours ago, bernieJo said: Ok Thanks, did it and works perfect 😅 So you have virgl working ok? If running on 7 rc2 the Mesa package is no longer required in extras, just qemu and virglrender.
January 3, 20251 yr 10 hours ago, SimonF said: So you have virgl working ok? Well it looks indeed that I am still running on SW rendering, the wheels of the gl demo are spinning but just increase cpu load not gpu load. I do not see a *-render device in the vm... I have installed the 3 (ok now 2) pkg's and am just reinstalling the vm from scratch, I will add the lines in the vm xml and install Ubuntu 2404.. I will let you know. Edited January 3, 20251 yr by bernieJo
January 3, 20251 yr Looks better now! the solution was not only add one line in xml at video section but replace my section with the complete entry : <video> <model type='virtio' heads='1' primary='yes'> <acceleration accel3d='yes'/> </model> </video>
January 3, 20251 yr ....and it is real big improvement in performance of the VM's GUI. Really great! I was in doubt if my new N100 board is the right base für my new NAS for having one or the other VM beside Samba and containers. Now I am convinced. So looking forward to have it in the Unraid GUI. 😁👍
January 4, 20251 yr On 12/19/2024 at 10:16 AM, SimonF said: Still looking at options, but propose something like this. Not tested mulitple screens/heads so may not include. Would it make sense to separate out the number of displays from the memory, as two independent dropdowns?
January 4, 20251 yr Author 8 hours ago, Ancalagon said: Would it make sense to separate out the number of displays from the memory, as two independent dropdowns? Maybe but the back end processing is more simple this way.
January 5, 20251 yr Native SR-IOV graphics support and Nvidia vGPU - Licensed support is interesting too me. I don't know anything about virt Gll you mention it will read about it now. I would love to share a GPU (even if it's just Nvidia approved versions, Tesla etc, using legal licensing etc) to multiple windows vm's simultaneously. Thanks 👍
January 9, 20251 yr Another helpful option would be a select all / deselect all for logical CPU cores. I often want all logical cores enabled for a VM and for a 16-core/32-thread CPU, this requires a lot of tedious clicking. An option to quickly select 4/8/12/16/20/24/28/etc. cores, that correctly selects the optimal combination of logical cores, would also be nice.
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.