Developers of the project Mesa announced about Certification The organization of the driver of the driver rustical , which successfully went through all the texts from the CTS set ( Kronos Conformance Test Suite) and is recognized as completely compatible with the OpenCl 3.0 specification, which determines the API and expand the language C to organize cross-platform parallel calculations. Obtaining a certificate makes it possible to officially declare compatibility with standards and use the Khronos brands associated with them. Check was performed on the system with 12-collection of integrated GPU Intel, which used Gallium3D drive IRIS .
The driver is written in Rust and is developing Carol Herbst from Red Hat, who participating in the development of MESA, Nouveau driver and open OpenCl stack. Rusticl acts as an analogue of the OpenCl-Frontente at Mesa clover and is also developed using the interfacing gallium . Clover has long been abandoned and Rusticl is positioned as its future replacement. In addition to achieving compatibility with OpenCl 3.0, the Rusticl project differs from Clover support for OpenCl extensions for does not support FP16 format. To generate binding for Mesa and OpenCl, allowing to cause RUST-function from Cod on SI and vice versa, in Rusticl, rust-bindgen .
code to support the language Rusticals and will be accepted into the main composition of Mesa and will be proposed in the issue of Mesa 22.3, which is expected at the end of November. Rust and Rusticl support will be disconnected by default and will require assembly with a clear indication of the options “-D Gallium -Rusticl = True -DLLVM = ENABLED -DRUST_STD = 2021”. When assembling as additional dependencies, Rustc compiler, binding binding generator, LLVM, Spirv-Tools tools and spirv-volvm-Translator transformer.
The possibility of using the Rust language in the MESA project has been discussed since 2020. Of the advantages of RUST support, an increase in the safety and quality of drivers by getting rid of typical problems when working with memory, as well as the ability to include third-party developments in the composition of MESA, such as Kazan (Vulkan implementation on rust). Of the shortcomings, there is a complication of the assembly system, unwillingness to become attached to the Cargo package system, expanding the requirements for the assembly environment and the need to include Rust compiler for assembly dependencies that are mandatory for building key components of the desktop in Linux.