Investigation results for graphics virtualization, as preparation for the corresponding AVPS chapters and general knowledge sharing.
Investigation of hardware features for GPU virtualization
- IMG PowerVR GPU IP as integrated into Renesas R-Car Gen 3 SoCs: Presentation gave by Renesas to the HV working group
- Mali 78AE presentation ← TODO Gunnar Andersson
- Nvidia - is there some corresponding public information available?
VirtioGPU status
(last update mid-2020?)
Availability | Acceptance in the VIRTIO standard | Proposal for the standard | De facto standard | Implementation status | In QEMU / Linux kernel | FOSSS in a GitHub Repo | Commercial / closed-source implementation | Other implementations | Complexity estimation | Performance | Code maturity | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
VirtioGPU (2D) | Yes | Likely (vote is done) | An update to virtio-v1.0-cs03 [1] | Yes | Upstream | linux 4.2 / qemu 2.4 | Yes | Medium | Highly implementation and hardware dependent | High | ||
VirtioGPU (3D) | Yes | No | Virgl3D commands [2] | No | Work in progress. Virtio related code is in upstream. Virgl supports OpenGL 4.3 and OpenGL ES 3.2 in the VM using both OpenGL and OpenGL ES backends on the host [3]. OpenGL ES 3.2 support has been added in mesa 18.2.0 [4]. Vulkan-virglrenderer is heavily work in progress [5]. | linux 4.4 / qemu 2.5 | Yes [6] | Medium | Highly implementation and hardware dependent | Medium |
More details: VIRTIO GPU Operation Highlights
[1] https://www.kraxel.org/virtio/virtio-v1.0-cs03-virtio-gpu.pdf
[2] https://github.com/Keenuts/virtio-gpu-documentation/blob/master/src/virtio-gpu.md
[3] https://lwn.net/Articles/767970/
[4] https://www.mesa3d.org/relnotes/18.2.0.html
[5] https://github.com/Keenuts/vulkan-virgl
[6] https://gitlab.freedesktop.org/virgl/virglrenderer