1VirGL 2===== 3 4What is VirGL? 5-------------- 6 7VirGL is a virtual 3D GPU for use inside QEMU virtual machines, that 8allows the guest operating system to use the capabilities of the host GPU 9to accelerate 3D rendering. The plan is to have a guest GPU that is fully 10independent of the host GPU. 11 12What exactly does it entail? 13---------------------------- 14 15The project entails creating a virtual 3D capable graphics card for 16virtual machines running inside QEMU. The design of this card is based 17around the concepts of Gallium3D to make writing Mesa and (eventually) 18Direct3D drivers for it easy. The card natively uses the Gallium TGSI 19intermediate representation for its shaders. The implementation of 20rendering for the card is done in the host system as part of QEMU and is 21implemented purely on OpenGL so you can get accelerated rendering on any 22sufficiently capable card/driver combination. 23 24The project also consists of a complete Linux guest stack, composed of a 25Linux kernel KMS driver, X.org 2D DDX driver and Mesa 3D driver. 26 27Current status 28-------------- 29 30* Many pieces are now upstreamed in various projects. 31* Kernel Linux 4.2 contains the modesetting only drivers. Linux 4.4 32 contains the 3D supported pieces. 33* Mesa main contains the VirGL 3D driver. 34* QEMU 2.4 contained the initial virtio-gpu with no acceleration 35 support. QEMU 2.5 contains 3D support only with the GTK3 frontend with 36 GL enabled. 37* The virglrenderer library seems mostly API stable. 38* Limited environment renderer (GLES2) 39 40So what can it do now? 41^^^^^^^^^^^^^^^^^^^^^^ 42 43Run a desktop and most 3D games I've thrown at it. 44 45Scope 46----- 47 48The project is currently investigating the desktop virtualization use case 49only. This use case is where the viewer, host and guest are all running on 50the same machine (i.e. workstation or laptop). Some areas are in scope for 51future investigation but not being looked at, at this time. 52 53Future scope 54^^^^^^^^^^^^ 55 56* Remoting rendering using a codec solution. 57* Windows guest, Direct3D drivers. 58* Other architectures 59 60Out of scope 61^^^^^^^^^^^^ 62 63* Passing through GPUs or subsets of GPU capabilities. 64 65Repos 66----- 67 68All upstream parts are being developed upstream. 69 70virglrenderer: the GL renderer https://gitlab.freedesktop.org/virgl/virglrenderer 71 72Authors and Contributors 73------------------------ 74 75VirGL is a project undertaken by Dave Airlie at Red Hat. It builds on lots 76of open source work in a number of projects, primarily the Gallium 3D code 77from the Mesa project. 78 79Support or Contact 80------------------ 81 82mailing list: [email protected] 83 84https://lists.freedesktop.org/mailman/listinfo/virglrenderer-devel 85 86IRC: `#virgil3d on OFTC <irc://irc.oftc.net/virgil3d>`__. 87