Разработчики проекта Mesa объявили о сертификации организацией Khronos драйвера rusticl, который успешно прошёл все тексты из набора CTS (Kronos Conformance Test Suite) и признан полностью совместимым со спецификацией OpenCL 3.0, определяющей API и расширения языка С для организации кросс-платформенных параллельных вычислений. Получение сертификата даёт возможность официально заявлять о совместимости со стандартами и использовать связанные с ними торговые марки Khronos. Проверка была выполнена на системе с 12-поколением интегрированных GPU Intel, на которой использовался Gallium3D-драйвер Iris.
Драйвер написан на языке Rust и развивается Кэролом Хербстом (Karol Herbst) из компании Red Hat, принимающим участие в разработке Mesa, драйвера Nouveau и открытого стека OpenCL. Rusticl выступает в роли аналога присутствующего в Mesa OpenCL-фронтэнда Clover и также разработан с использованием предоставляемого в Mesa интерфейса Gallium. Clover уже давно находится в заброшенном состоянии и rusticl позиционируется как его будущая замена. Кроме достижения совместимости с OpenCL 3.0 проект Rusticl отличается от Clover поддержкой расширений OpenCL для обработки изображений, но пока не поддерживает формат FP16. Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen.
Код для поддержки языка Rust и драйвер rusticl приняты в основной состав Mesa и будут предложены в выпуске Mesa 22.3, который ожидается в конце ноября. Поддержка Rust и rusticl будет отключена по умолчанию и потребует сборки с явным указанием опций “-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021”. При сборке в качестве дополнительных зависимостей потребуются компилятор rustc, генератор привязок bindgen, LLVM, инструментарий SPIRV-Tools и транслятор SPIRV-LLVM-Translator.
Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.