Modernizing Virtio GPU

Modernizing Virtio GPU: A Rust-Powered Approach with vhost-device-gpu

 

The expansion of virtio-GPU into QEMU and Crosvm as well as Android automotive virtualization has generated demand for improved safety and maintainability of device backends thus leading to the development of vhost-device-gpu which functions independently using Rust and the vhost-user protocol.

This presentation illustrates the ways vhost-device-gpu reshapes virtual graphics architecture through its innovative design:

  • Reducing the attack surface requires isolating the device backend from the VMM.
  • The development achieves greater security through Rust’s memory safety features.
  • The implementation supports modular renderer backends such as virglrenderer and gfxstream through rutabaga_gfx.

We’ll walk through:

  • How the vhost-user-gpu protocol demonstrates functionality through existing capabilities like control and cursor queue handling, feature bit negotiation, and compatibility with modern renderers like virglrenderer and gfxstream.
  • How the Rust-based internal components of the device work alongside Rust-vmm integration while working through Rutabaga difficulties and enabling Vulkan support through host-visible memory.
  • Support for shared memory and host-visible memory region, is under active development to meet Vulkan and gfxstream demands.
  • Real-world performance observations with Android AAOS and Linux guests.

The session will end with a demo of running vhost-device-gpu as a standalone process connected to a QEMU VM.

Dorinda Bassey

Dorinda Bassey

Microsoft

Dorinda Bassey is a Software Engineer at Red Hat, specializing in virtualization technologies and device emulation. She has made significant contributions to the Rust-vmm project, particularly in developing virtio device backends like vhost-device-gpu and vhost-device-sound. Her work focuses on implementing virtio-gpu in Rust, enabling modular, secure, and hypervisor-agnostic graphics virtualization. Dorinda has also contributed to projects like QEMU, stress-ng and the Yocto Project, and has presented her work at conferences such as KVM Forum and DevConf.CZ.