Feature changed by: Vasilis Liaskovitis (vliaskovitis) Feature #323357, revision 2 Title: seamless support for virgl/virtio-gpu on QEMU/KVM VMs using spice Requested by: Vasilis Liaskovitis (vliaskovitis) Partner organization: openSUSE.org Description: - virgl/virtio-gpu for qemu/KVM support exists since qemu 2.6 Guest - requirements are met by openSUSE Tumbleweed: guest kernel >= 4.4, mesa - >= 11.1, xorg server >= 1.19 However the following host requirement is - not met in TW/Factory: spice server >= 0.13.2 Current libspice-server1 - package is 0.12.8 in TW/Factory. The current workaround is to not use - spice but to use sdl/gtk with virtio-gpu/virgl instead, and is quite - messy: - libvirt VM definition needs to change: <graphics type='spice' - /> to: <graphics type='sdl' display=':0' xauth='/home/user/. - Xauthority'/> and add following command line args to qemu: <qemu: - commandline> <qemu:arg value='-s'/> <qemu:arg value='-display'/> <qemu: - arg value='gtk,gl=on'/> </qemu:commandline> Also user's X display needs - to be shared with qemu user/group: xhost +SI:localgroup:qemu Note: For - complete virgl integration, there are also some missing pieces from - libvirt (regarding cgroup permissions), which are not accepted in - upstream libvirt afaik (at least not yet), see: https://www.redhat.com/archives/libvirt-users/2016-December/msg00014.html + virgl/virtio-gpu for qemu/KVM support exists since qemu 2.6 + Guest requirements are met by openSUSE Tumbleweed: guest kernel >= 4.4, + mesa >= 11.1, xorg server >= 1.19 + However the following host requirement is not met in TW/Factory: spice + server >= 0.13.2 Current libspice-server1 package is 0.12.8 in + TW/Factory. + The current workaround is to not use spice but to use sdl/gtk with + virtio-gpu/virgl instead, and is quite messy: - libvirt VM definition + needs to change: <graphics type='spice' /> to: <graphics type='sdl' + display=':0' xauth='/home/user/.Xauthority'/> + and add following command line args to qemu: + <qemu:commandline> <qemu:arg value='-s'/> <qemu:arg value='-display'/> + <qemu:arg value='gtk,gl=on'/> </qemu:commandline> + Also user's X display needs to be shared with qemu user/group: xhost + +SI:localgroup:qemu + Note: For complete virgl integration, there are also some missing + pieces from libvirt (regarding cgroup permissions), which are not + accepted in upstream libvirt afaik (at least not yet), see: + https://www.redhat.com/archives/libvirt-users/2016-December/msg00014.html More info on virgl requirements and integration: - https://www.kraxel.org/blog/tag/virtio-gpu/ https://www.kraxel.org/blog/tag/virgl/ + https://www.kraxel.org/blog/tag/virtio-gpu/ + https://www.kraxel.org/blog/tag/virgl/ Business case (Partner benefit): openSUSE.org: This would allow: - Seamless and easy usage of virtio-gpu / virgl driver in qemu/KVM openSUSE VMs. - Development of new virtio- gpu driver features on openSUSE (e.g. next step for virgl/virtio-gpu is to support vulkan API), performance comparisons b/w virgl and llvmpipe mesa drivers -- openSUSE Feature: https://features.opensuse.org/323357