Virgil 3d project

What is Virgil?

Virgil is a research project to investigate the possibility of creating a virtual 3D GPU for use inside qemu virtual machines, that allows the guest operating system to use the capabilities of the host GPU to accelerate 3D rendering. The plan is to have a guest GPU that is fully independent of the host GPU.

What exactly does it entail?

The project entails creating a virtual 3D capable graphics card for virtual machines running inside qemu. The design of this card is based around the concepts of Gallium3D to make writing Mesa and (eventually) Direct3D drivers for it easy. The card natively uses the Gallium TGSI intermediate representation for its shaders. The implementation of rendering for the card is done in the host system as part of qemu and is implemented purely on OpenGL so you can accelerated rendering on any sufficiently capable card/driver combination.

The project also consists of a complete Linux guest stack, composed of a Linux kernel KMS driver, 2D DDX driver and Mesa 3D driver.

Current status

So what can it do now?

Run a desktop and most 3D games I've thrown at it.


The project is currently investigating the desktop virtualisation use case only. This use case is where the viewer, host and guest are all running on the same machine (i.e. workstation or laptop). Some areas are in scope for future investigation but not being looked at, at this time.

Future scope

Out of scope


All upstream parts are being developed upstream.

virglrenderer: the GL renderer git://

Authors and Contributors

Virgil is a research project undertaken by Dave Airlie at Red Hat. It builds on lots of open source work in a number of projects, primarily the Gallium 3D code from the Mesa project.

Support or Contact

mailing list:

irc: #virgil3d on freenode