https://docs.mesa3d.org/drivers/virgl # Mesa 3D * Home * News * Getting Started * Documentation VirGLP What is VirGL?P VirGL is 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?P 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 get 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 statusP * 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 main contains the VirGL 3D driver. * 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. * The virglrenderer library seems mostly API stable. * Limited environment renderer (GLES2) So what can it do now?P Run a desktop and most 3D games I've thrown at it. ScopeP The project is currently investigating the desktop virtualization 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 scopeP * Remoting rendering using a codec solution. * Windows guest, Direct3D drivers. * Other architectures Out of scopeP * Passing through GPUs or subsets of GPU capabilities. ReposP All upstream parts are being developed upstream. virglrenderer: the GL renderer https://gitlab.freedesktop.org/virgl/ virglrenderer Authors and ContributorsP VirGL is a 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 ContactP mailing list: virglrenderer-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/virglrenderer-devel IRC: #virgil3d on OFTC. [ ] Documentation * Introduction * Project History * Amber Branch * Platforms and Drivers * License and Copyright * Frequently Asked Questions * Release Notes Download and Install * Downloading and Unpacking * Compiling and Installing * Precompiled Libraries Need help? * Mailing Lists * Report a Bug User Topics * Shading Language * EGL * OpenGL ES * Environment Variables * Off-screen Rendering * Debugging Tips * Performance Tips * GPU Performance Tracing * Mesa Extensions * Application Issues * Gallium Nine * Viewperf Issues * Xlib Software Driver Drivers * ANV * Asahi * D3D12 * Freedreno * Lima * LLVMpipe * NVK * Panfrost * PowerVR * RADV * VMware SVGA3D * V3D * VC4 * Virtio-GPU Venus * VirGL + What is VirGL? + What exactly does it entail? + Current status o So what can it do now? + Scope o Future scope o Out of scope + Repos + Authors and Contributors + Support or Contact * Zink Developer Topics * Source Code Repository * Source Code Tree * Development Utilities * Help Wanted * Development Notes * Coding Style * Submitting Patches * Releasing Process * Release Calendar * GL Dispatch * Gallium * Vulkan Runtime * NIR Intermediate Representation (NIR) * Intel Surface Layout (ISL) * Rusticl * Android * Notes for macOS * Linux Kernel Drivers Testing * Conformance Testing * Continuous Integration Links * OpenGL Website * DRI Website * Developer Blogs Documentation * License * FAQ * Getting Started Community * GitLab * Mailing Lists * Report a Bug More * About Mesa3D.org * Acknowledgements * Mesa / DRI Wiki Hosted by Freedesktop.org Edit this page