4 ms·
virtio-gpu with vulkan command passthrough to host, https://docs.mesa3d.org/drivers/venus.html https://docs.mesa3d.org/drivers/venus.html
by epilys 2y ago
virtio-gpu with vulkan command passthrough to host, https://docs.mesa3d.org/drivers/venus.html https://docs.mesa3d.org/drivers/venus.html
- qwertox 2y agoThank you. So is this a Vulkan emulator which does not send the commands into a software renderer but rather to the host's GPU? What reserves the resources on the GPU, also this driver? Can one reserve resources explicitly through the API or does this happen dynamically, as-needed? Because if explicitly, then I'd wonder if this is also part of the library, of the Vulkan spec, or if it is some Mesa offering.
- epilys 2y agoIt's basically allowing you to use the vulkan API on the virtualized guest, by writing vulkan API commands in a ring buffer in memory that is visible both by guest and host. These memory regions are only alive and accessible as long as the allocation lives, which is controlled by virtio control commands (in specific, create, map, unmap, destroy BLOB where a blob is the shared memory allocation). This allows textures shaders and generally large amounts of data to skip being copied to and from the virtqueues, which is the usual method of virtio communication. So to answer your question, if you use the Vulkan API on a guest to for example query the available Vulkan devices, if the correct mesa library is installed and virtio-gpu Venus is available, you will be able to use resources on the host with the Vulkan API.