diff --git a/docs/drivers/virgl.rst b/docs/drivers/virgl.rst new file mode 100644 index 00000000000..35e5695cc22 --- /dev/null +++ b/docs/drivers/virgl.rst @@ -0,0 +1,87 @@ +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, X.org 2D DDX driver and Mesa 3D driver. + +Current status +-------------- + +* Many pieces are now upstreamed in various projects. +* Kernel Linux 4.2 contains the modesetting only drivers. Linux 4.4 + contains the 3D supported pieces. +* Mesa Mesa master contains the virgl 3D driver. +* QEMU QEMU 2.4 contained the initial virtio-gpu with no acceleration + support. QEMU 2.5 contains 3D support only with the GTK3 frontend with + GL enabled. +* virglrenderer The virglrenderer library seems mostly API stable. + +So what can it do now? +^^^^^^^^^^^^^^^^^^^^^^ + +Run a desktop and most 3D games I've thrown at it. + +Scope +----- + +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 +^^^^^^^^^^^^ + +* Remoting rendering using a codec solution. +* Windows guest, Direct3D drivers. +* Other architectures +* Limited environment renderer (GLES2) + +Out of scope +^^^^^^^^^^^^ + +* Passing through GPUs or subsets of GPU capabilities. + +Repos +----- + +All upstream parts are being developed upstream. + +virglrenderer: the GL renderer http://cgit.freedesktop.org/virglrenderer git://git.freedesktop.org/git/virglrenderer + +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: virglrenderer-devel@lists.freedesktop.org + +https://lists.freedesktop.org/mailman/listinfo/virglrenderer-devel + +irc: ``#virgil3d`` on freenode diff --git a/docs/index.rst b/docs/index.rst index ea080119bf5..39699562d2a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -93,6 +93,7 @@ Linux, FreeBSD, and other operating systems. drivers/v3d drivers/vc4 drivers/venus + drivers/virgl drivers/zink .. toctree:: diff --git a/docs/systems.rst b/docs/systems.rst index dd057409c32..b95b5f3cc9d 100644 --- a/docs/systems.rst +++ b/docs/systems.rst @@ -32,8 +32,8 @@ Layered driver include: - :doc:`D3D12 ` - driver providing OpenGL on top of Microsoft's Direct3D 12 API. - :doc:`SVGA3D ` - driver for VMware virtual GPU -- `VirGL `__ - research project for - accelerated graphics for qemu guests +- `VirGL ` - research project for accelerated graphics + for qemu guests - :doc:`Zink ` - driver providing OpenGL on top of Khoronos' Vulkan API.