OpenBSD: Viogpu(4), a VirtIO GPU driver, added to -current
undeadly.org
undeadly.org
I'd even just settle for a way to offload video decoding to the host GPU somehow.
With modern software such as DXVK, Zink and VKD3D a lot of the burden of implementing Direct3D and OpenGL would probably be reduced by writing a Vulkan implementation and piggybacking over it for the rest though.
Virtio GPU is something different, namely a para-virtualized graphics adapter that uses the VirtIO guest-to-host communication to expose hardware accelerated graphics to the VM.
For instance, on the guest side, you could have Mesa3D implementing OpenGL userspace and internally using its "Virgl" driver (or "Venus", for Vulkan) that serializes a command stream, sends that through a guest side kernel driver that passes it on through the VirtIO device to Qemu on the host side, that then uses existing OpenGL userspace graphics APIs to do the actual accelerated rendering.
https://wiki.archlinux.org/title/QEMU/Guest_graphics_acceler...
The Venus driver for Vulkan is described as "experimental" [4], with Linux kernel side support merged in version 5.16 (release in early 2022[5]).
RedHat is developing VirtIO drivers for Windows[6], but apparently they gave up the work on the OpenGL ICD driver in favor of Vulkan[7]?
That said, I have no clue what the situation on various BSDs looks like. I guess on OpenBSD, this is a first step towards making this chain work?
[0] https://wiki.archlinux.org/title/QEMU/Guest_graphics_acceler...
[1] https://docs.mesa3d.org/drivers/virgl.html
[2] https://kernelnewbies.org/Linux_4.4
[3] https://lists.gnu.org/archive/html/qemu-devel/2015-12/msg027...
[4] https://docs.mesa3d.org/drivers/venus.html
[5] https://kernelnewbies.org/Linux_5.16
[6] https://www.linux-kvm.org/page/WindowsGuestDrivers/Download_...
[7] https://lists.freedesktop.org/archives/virglrenderer-devel/2...