Virglrenderer provides OpenGL acceleration to a guest running on QEMU.
My current GSoC project is to add support for the Vulkan API.
Vulkan is drastically different to OpenGL. Thus, this addition is not straight-forward. My current idea is to add an alternative path for Vulkan. Currently, two different states are kept, one for OpenGL, and one for Vulkan. Commands will either go to the OpenGL or Vulkan front-end.
For now, only compute shaders are supported. The work is divided in two parts: a Vulkan ICD in MESA, and a new front-end for Virgl and vtest.
If you have any feedback, do not hesitate !
This experiment can be tested using this repository. If you have an Intel driver in use, you might be able to use the Dockerfile provided.
Each part is also available independently: