Rusticl Lands Fixes For Rust-OpenCL Discrete GPU Support, Preps SPIR-V Program Support

Merged for Mesa 22.3 one month ago was Rusticl as a new OpenCL implementation written in Rust . Since then Karol Herbst of Red Hat, who has led the work on this new driver front-end, has been working to get Rusticl running on more Gallium3D drivers and even atop Zink for execution with Vulkan drivers . Much of his testing/focus so far has been making use of integrated GPUs while an important patch series was merged this evening for discrete GPU fixes.

Karol Herbst merged a set of "must have" fixes for Rusticl support around graphics processors with discrete video memory. Karol commented:
This fixes some corner case problems with non blocking memory maps, but also adds shadowing of unmapable resources (e.g. tiled images). The old code relied on drivers pipe_transfers to get this right, but OpenCL requires us to be more explicit about when do synchronize transfers and the real resource.

A set of 7 patches provide these important fixes for dGPU users on Mesa wanting to experiment with Rusticl.


Karol continues rapidly improving this Rust-written OpenCL implementation for Mesa Gallium3D.


While not yet merged, this week Karol also opened this merge request working on SPIR-V program support. SPIR-V is already used internally by Rusticl while that pending code is about getting Rusticl able to consume external SPIR-V programs. This will be important moving forward for the possible Rusticl support for SYCL and HIP consumption.