Разработчиците на проекта Mesa обявиха, че драйверът rusticl е сертифициран от организацията Khronos, след като успешно премина всички тестове от набора CTS (Kronos Conformance Test Suite) и е признат за напълно съвместим със спецификацията OpenCL 3.0, която определя API и разширения на езика C за организация на кросплатформени паралелни изчисления. Получаването на сертификата предоставя възможността официално да се заявява съвместимост със стандартите и да се използват свързани търговски марки на Khronos. Проверка е извършена на система с 12-то поколение интегрирани GPU Intel, на която е използван Gallium3D драйвера Iris.
Драйверът е написан на езика Rust и е разработван от Кэрол Хербст (Karol Herbst) от компанията Red Hat, която участва в разработката на Mesa, драйвера Nouveau и отворения стек OpenCL. Rusticl играе ролята на аналог на OpenCL фронтенда Clover, наличен в Mesa, и също е разработен с използване на предоставения интерфейс Gallium в Mesa. Clover отдавна е в забвение, а rusticl е позициониран като негово бъдещо заменяне. Освен постигането на съвместимост с OpenCL 3.0, проектът Rusticl се отличава от Clover с поддръжка на OpenCL разширения за обработка на изображения, но все още не поддържа формата FP16. За генериране на биндинги за Mesa и OpenCL, позволяващи извикването на Rust функции от C код и обратно, в 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 се посочва повишаване на сигурността и качеството на драйвера чрез избавяне от типични проблеми при работа с паметта, а също така и възможността за включване на външни разработки, като Kazan (реализация на Vulkan на Rust). Недостатъците включват усложняване на системата за компилация, нежелание да се привързва към пакетната система cargo, разширени изисквания към компилационната среда и необходимостта от включване на компилатора Rust в зависимостите за компилация, задължителни за изграждане на основните компоненти на работния плот в Linux.
Допълнително може да се отбележи работата по развитието на драйвера Nouveau, също извършена от Карол Хербст. В драйвера Nouveau е добавена основна подкрепа за OpenGL за GNU NVIDIA GeForce RTX 30xx на базата на микроархитектурата Ampere, произвеждани от май 2020 година. Свързаните със защитата на новите чипове изменения ще влязат в състава на ядрото на Linux 6.2 и Mesa 22.3.
Източник: opennet.ru
