qemus/qemu-vmvga

Virtual graphics adapter for QEMU with GPU acceleration.

C

7

750 commits

updated Sep 24, 2026

See the code

See what people are saying

SourceMessageScoreDate

Virtio-nvgpu: Near-native Nvidia GPU access inside a KVM guest

There are a few experimental solutions currently available: https://github.com/virtio-win/kvm-guest-drivers-windows/pull... https://github.com/qemus/qemu-vmvga https://docs.mesa3d.org/drivers/venus.html https://blog.getutm.app/2026/introducing-triton-directx-11-d...

0

Sep 24, 2026

README

VMVGA

VMVGA is a virtual graphics adapter for QEMU implementing the VMware SVGA/SVGA3D interfaces to provide GPU acceleration.

Purpose 🖥️

QEMU’s stock VMware SVGA II device (vmware-svga) provides only a minimal implementation of the hardware. Most legacy 2D FIFO commands are missing, and VMware's 3D acceleration interfaces are not implemented.

This fork provides a substantially improved VMware SVGA II device, with both 2D and 3D graphics acceleration.

Features ✨

The core device implementation has been improved substantially, including:

  • PCI compatibility
  • Register and FIFO behavior
  • VRAM and surface-memory
  • Dirty-memory scanning
  • Damage tracking
  • Command batching
  • Optimized pixel operations

Together, these improvements provide better VMware driver compatibility, more reliable rendering, and more efficient display updates.

3D acceleration

The device supports DirectX acceleration. VMware SVGA 3D commands are processed by the QEMU device and rendered through DXVK, which translates the Direct3D graphics operations to Vulkan on the host.

2D acceleration

The implementation provides the full legacy 2D command stack used by VMware display drivers, including:

  • Rectangle operations
  • Raster operations
  • Bitmap and pixmap patterns
  • Glyph rendering
  • Offscreen surfaces
  • Alpha blending
  • Hardware cursors
  • Display updates

These commands provide substantially improved compatibility with legacy VMware display drivers and enable accelerated desktop rendering, particularly when QEMU's VNC output is used.

Download 📦

You can download a pre-built binary based on QEMU 11.1.1 from the Releases page.

Building 🔨

The source is designed to be overlaid onto a QEMU source tree before QEMU is built. Downstream projects can therefore fetch or vendor this repository, copy the files into their QEMU source tree, and then run their existing QEMU build process.

Usage 🚀

Once included in QEMU, a new display device will be available:

-device vmvga

3D acceleration requires the VMware SVGA display drivers installed in the guest, a Vulkan-capable graphics card, and the dxvk-native package installed on the host.

Then start the machine with the VMware backdoor port enabled:

-machine type=xxx,vmport=on

Unfortunately KVM raises a general protection exception when the user-mode component of these drivers tries to access this VMware backdoor I/O port, causing the driver to disable 3D acceleration.

To work around this problem, add the following setting to your host KVM module configuration:

echo "options kvm enable_vmware_backdoor=Y" | sudo tee /etc/modprobe.d/kvm-vmware-backdoor.conf
sudo reboot

If KVM is built directly into the kernel rather than loaded as a module, add kvm.enable_vmware_backdoor=1 to the kernel command line instead.

Acknowledgements 🙏

The implementation is derived from QEMU's VMware SVGA II device originally written by Andrzej Zaborowski and includes later work by Christopher Eric Lentocha.

qemu
qemu-kvm
svga
virtio
virtio-driver
virtio-drivers
virtio-gpu

Contributors

kroese

540 commits

CE1CECL

210 commits

qemus/qemu-vmvga

Virtual graphics adapter for QEMU with GPU acceleration.

C

7

750 commits

updated Sep 24, 2026

See the code

See what people are saying

SourceMessageScoreDate

Virtio-nvgpu: Near-native Nvidia GPU access inside a KVM guest

There are a few experimental solutions currently available: https://github.com/virtio-win/kvm-guest-drivers-windows/pull... https://github.com/qemus/qemu-vmvga https://docs.mesa3d.org/drivers/venus.html https://blog.getutm.app/2026/introducing-triton-directx-11-d...

0

Sep 24, 2026

README

VMVGA

VMVGA is a virtual graphics adapter for QEMU implementing the VMware SVGA/SVGA3D interfaces to provide GPU acceleration.

Purpose 🖥️

QEMU’s stock VMware SVGA II device (vmware-svga) provides only a minimal implementation of the hardware. Most legacy 2D FIFO commands are missing, and VMware's 3D acceleration interfaces are not implemented.

This fork provides a substantially improved VMware SVGA II device, with both 2D and 3D graphics acceleration.

Features ✨

The core device implementation has been improved substantially, including:

  • PCI compatibility
  • Register and FIFO behavior
  • VRAM and surface-memory
  • Dirty-memory scanning
  • Damage tracking
  • Command batching
  • Optimized pixel operations

Together, these improvements provide better VMware driver compatibility, more reliable rendering, and more efficient display updates.

3D acceleration

The device supports DirectX acceleration. VMware SVGA 3D commands are processed by the QEMU device and rendered through DXVK, which translates the Direct3D graphics operations to Vulkan on the host.

2D acceleration

The implementation provides the full legacy 2D command stack used by VMware display drivers, including:

  • Rectangle operations
  • Raster operations
  • Bitmap and pixmap patterns
  • Glyph rendering
  • Offscreen surfaces
  • Alpha blending
  • Hardware cursors
  • Display updates

These commands provide substantially improved compatibility with legacy VMware display drivers and enable accelerated desktop rendering, particularly when QEMU's VNC output is used.

Download 📦

You can download a pre-built binary based on QEMU 11.1.1 from the Releases page.

Building 🔨

The source is designed to be overlaid onto a QEMU source tree before QEMU is built. Downstream projects can therefore fetch or vendor this repository, copy the files into their QEMU source tree, and then run their existing QEMU build process.

Usage 🚀

Once included in QEMU, a new display device will be available:

-device vmvga

3D acceleration requires the VMware SVGA display drivers installed in the guest, a Vulkan-capable graphics card, and the dxvk-native package installed on the host.

Then start the machine with the VMware backdoor port enabled:

-machine type=xxx,vmport=on

Unfortunately KVM raises a general protection exception when the user-mode component of these drivers tries to access this VMware backdoor I/O port, causing the driver to disable 3D acceleration.

To work around this problem, add the following setting to your host KVM module configuration:

echo "options kvm enable_vmware_backdoor=Y" | sudo tee /etc/modprobe.d/kvm-vmware-backdoor.conf
sudo reboot

If KVM is built directly into the kernel rather than loaded as a module, add kvm.enable_vmware_backdoor=1 to the kernel command line instead.

Acknowledgements 🙏

The implementation is derived from QEMU's VMware SVGA II device originally written by Andrzej Zaborowski and includes later work by Christopher Eric Lentocha.

qemu
qemu-kvm
svga
virtio
virtio-driver
virtio-drivers
virtio-gpu

Contributors

kroese

540 commits

CE1CECL

210 commits

Languages

C

100.0%