De ontwikkelaars van het Mesa-project hebben aangekondigd dat de rusticl-driver is gecertificeerd door de Khronos-organisatie. De driver heeft alle tests van de CTS (Kronos Conformance Test Suite) met succes doorstaan en is volledig compatibel met de OpenCL 3.0-specificatie. Deze specificatie definieert de API en uitbreidingen van de C-taal voor het organiseren van platformonafhankelijk parallel computing. Met het behalen van de certificering kan Khronos formeel verklaren dat het bedrijf voldoet aan de normen en de bijbehorende handelsmerken gebruiken. De test werd uitgevoerd op een systeem met een geïntegreerde Intel GPU van de 12e generatie, met gebruikmaking van de Gallium3D Iris-driver.
De driver is geschreven in Rust en wordt ontwikkeld door Karol Herbst van Red Hat, die betrokken is bij de ontwikkeling van Mesa, de Nouveau-driver en de open source OpenCL-stack. Rusticl fungeert als een analoog van Mesa's OpenCL frontend Clover en is ook ontwikkeld met behulp van Mesa's Gallium-interface. Clover is al een tijdje in verval en Rusticl wordt gezien als de toekomstige vervanger ervan. Het Rusticl-project is niet alleen compatibel met OpenCL 3.0, het verschilt ook van Clover doordat het OpenCL-extensies voor beeldverwerking ondersteunt, maar nog niet het FP16-formaat. Rusticl gebruikt rust-bindgen om bindingen voor Mesa en OpenCL te genereren, zodat u Rust-functies vanuit C-code kunt aanroepen en vice versa.
De code voor de ondersteuning van de Rust-taal en de Rusticl-driver zijn geaccepteerd in de Mesa-kern en worden aangeboden in de release van Mesa 22.3, die eind november wordt verwacht. Ondersteuning voor Rust en Rusticl is standaard uitgeschakeld en vereist dat u de expliciete optie "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021" gebruikt. Tijdens het bouwen zijn de aanvullende afhankelijkheden vereist: de rustc-compiler, bindgen, LLVM, SPIRV-Tools en SPIRV-LLVM-Translator.
Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.
Дополнительно можно отметить работу по развитию драйвера Nouveau, также проведённую Кэролом Хербстом. В драйвер Nouveau добавлена базовая поддержка OpenGL для GNU NVIDIA GeForce RTX 30xx на базе микроархитектуры Ampere, выпускаемых с мая 2020 года. Связанные с поддержкой новых чипов изменения войдут в состав ядра Linux 6.2 en Mesa 22.3.
Bron: opennet.ru
