Investigation results for graphics virtualization, as preparation for the corresponding AVPS chapters and general knowledge sharing.

Investigation of hardware features for GPU virtualization

VirtioGPU status 

(last update mid-2020?)


AvailabilityAcceptance in the VIRTIO standardProposal for the standardDe facto standardImplementation statusIn QEMU / Linux kernelFOSSS in a GitHub RepoCommercial / closed-source implementationOther implementationsComplexity estimationPerformanceCode maturity
VirtioGPU (2D)YesLikely (vote is done)An update to virtio-v1.0-cs03 [1]YesUpstreamlinux 4.2 / qemu 2.4Yes



MediumHighly implementation and hardware dependentHigh
VirtioGPU (3D)YesNoVirgl3D 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


  • No labels