xref: /aosp_15_r20/external/mesa3d/docs/drivers/virgl.rst (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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