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. Virglrenderer is mostly OpenGL ES 2.0 compliant 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.0 support is WIP [32 support has been added in mesa 18.2.0 [4]. Vulkan-virglrenderer is heavily work in progress [45]. | linux 4.4 / qemu 2.5 | Yes [56] | 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://wwwlwn.collabora.com/news-and-blog/blog/2018/05/09/gpu-virtualization-update/net/Articles/767970/
[4] https://www.mesa3d.org/relnotes/18.2.0.html
[5[4] https://github.com/Keenuts/vulkan-virgl
[56] https://gitlab.freedesktop.org/virgl/virglrenderer
...