Тесты пройдены на системе с 12-поколением GPU Intel (Alder Lake). Работа проведена с использованием Mesa-драйвера Iris, но проект должен работать и с другими драйверами Mesa, использующими бестиповое промежуточное представление (IR) шейдеров NIR.
Запрос на слияние Rusticl с Mesa пока находится на стадии рассмотрения и решение о включении кода на языке Rust в Mesa пока не принято. До принятия Rusticl в основной состав Mesa для сборки можно использовать отдельную ветку, при компиляции которой следует указать сборочные параметры «-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=true».
Rusticl выступает в роли аналога присутствующего в Mesa OpenCL-фронтэнда Clover и также разработан с использованием предоставляемого в Mesa интерфейса Gallium. Кол Clover уже давно находится в заброшенном состоянии и rusticl позиционируется как его будущая замена. Кроме достижения совместимости с OpenCL 3.0 проект Rusticl отличается от Clover поддержкой расширений OpenCL для обработки изображений, но пока не поддерживает формат FP16.
Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen. Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.
Источник: http://www.opennet.ru/opennews/art.shtml?num=57071