Vulkan and OpenGL are supported by virglrenderer using various approaches: Venus offers virtualized support for Vulkan, OpenGL can make use of VirGL or Zink, the latter of which translates to Vulkan to be handled by Venus. Given it's architecture, certain features that are not supported by the host driver can be emulated resulting in a guest that is able to run most OpenGL applications, even though the host may only support GLES. Neither VirGL nor Venus require a guest driver that is aware of the specific host hardware, they simply query the host features by using the public OpenGL or Vulkan interface of the host driver, and offer a corresponding level of support in the guest.