In late May the Rust-written “Rusticl” OpenCL driver within Mesa landed support for Shared Virtual Memory (SVM). Following that, the Intel Iris Gallium3D driver has now seen its support merged for SVM.
The Rusticl SVM code introduced last month implements cl_ext_buffer_device_address, the Shared Virtual Memory requirements by Shared Virtual Memory for OpenCL 2.0+, and then preps for the Intel cl_intel_unified_shared_memory extension that is needed by some SYCL implementations. OpenCL SVM allows for sharing of pointers and pointer-containing data structures easily between host and device code. OpenCL SVM also provides memory model consistency guarantees for greater coherency.
OpenCL SVM has been around for many years now while this was a big feature for Rusticl to land and took quite a bit of work. Following the Rusticl SVM support, the Intel Iris changes for Shared Virtual Memory were merged on Tuesday for Mesa 25.2. With this the OpenCL 2.0 coarse grain buffer Shared Virtual Memory support with the Iris driver is considered completed.
This merge by Red Hat engineer Karol Herbst puts the pieces into place for SVM with the Intel Iris driver. Intel already was supporting Shared Virtual Memory with their Compute Runtime stack while nice seeing these complementary improvements being made to the Intel Iris driver.
Iris joins the Nouveau NVC0 and LLVMpipe drivers as the only other Mesa drivers at the moment with SVM support. There is also this merge request pending for RadeonSI SVM support so the AMD Radeon support will hopefully not be too far behind.
Karol Herbst has also been working on Rusticl fine-grained buffer SVM with this pending pull request.