VALLIUM Merged Into Mesa 20.3 As Vulkan Front-End To Gallium3D
Red Hat's David Airlie has been on quite a spree lately with open-source graphics driver improvements from OpenGL 4 for LLVMpipe to now merging "VALLIUM" for a Vulkan software implementation.
VALLIUM has come together in the past several months as a software/CPU-based Vulkan driver based on LLVMpipe. Airlie has been developing it on his own Mesa branch while today it was merged into Mesa 20.3-devel.
Before getting too excited, of the initial merge he commented, "This is the initial import of the vallium frontend for gallium. This is only good enough to run the triangle and the gears demo (wrongly) from Sascha demos."
As for this Vulkan front-end to Gallium3D, Airlie explained of the architecture, "It contains an implementation of the Vulkan API which is mapped onto the gallium API, and is suitable only for SOFTWARE drivers. Command buffers are recordred into malloced memory, then later they are played back against the gallium API. The command buffers are mostly just Vulkan API marshalling but in some places the information is processed before being put into the command buffer (renderpass stuff). Execution happens on a separate "graphics" thread, againt the gallium API. There is only a single queue which wraps a single gallium context."
Thus this is really just suitable for the LLVMpipe Gallium3D driver and not of use to other hardware drivers, etc.
The initial code is merged and building off the existing Mesa/Gallium3D/NIR code is just under twelve thousand lines. It will be interesting to see this VALLIUM work further mature.
VALLIUM has come together in the past several months as a software/CPU-based Vulkan driver based on LLVMpipe. Airlie has been developing it on his own Mesa branch while today it was merged into Mesa 20.3-devel.
Before getting too excited, of the initial merge he commented, "This is the initial import of the vallium frontend for gallium. This is only good enough to run the triangle and the gears demo (wrongly) from Sascha demos."
As for this Vulkan front-end to Gallium3D, Airlie explained of the architecture, "It contains an implementation of the Vulkan API which is mapped onto the gallium API, and is suitable only for SOFTWARE drivers. Command buffers are recordred into malloced memory, then later they are played back against the gallium API. The command buffers are mostly just Vulkan API marshalling but in some places the information is processed before being put into the command buffer (renderpass stuff). Execution happens on a separate "graphics" thread, againt the gallium API. There is only a single queue which wraps a single gallium context."
Thus this is really just suitable for the LLVMpipe Gallium3D driver and not of use to other hardware drivers, etc.
The initial code is merged and building off the existing Mesa/Gallium3D/NIR code is just under twelve thousand lines. It will be interesting to see this VALLIUM work further mature.
15 Comments