Mesa projekta izstrādātāji paziņoja, ka Khronos ir sertificējis rusticl draiveri. Tas ir veiksmīgi izturējis visus Kronos atbilstības testu komplekta (CTS) testus un tiek uzskatīts par pilnībā atbilstošu OpenCL 3.0 specifikācijai, kas definē API un C valodas paplašinājumus starpplatformu paralēlai skaitļošanai. Šīs sertifikācijas saņemšana ļauj Khronos oficiāli deklarēt atbilstību standartiem un izmantot saistītās Khronos preču zīmes. Verifikācija tika veikta sistēmā ar 12. paaudzes Intel integrētajām GPU, izmantojot Gallium3D Iris draiveri.
Draiveris ir rakstīts Rust valodā, un to izstrādājusi Karola Herbsta no Red Hat, kas ir iesaistīta Mesa, Nouveau draivera un atvērtā pirmkoda OpenCL steka izstrādē. Rusticl darbojas kā Mesa OpenCL lietotāja saskarnes Clover analogs un arī tiek izstrādāts, izmantojot Mesa Gallium saskarni. Clover jau sen ir pamests, un rusticl tiek pozicionēts kā tā nākotnes aizstājējs. Papildus saderībai ar OpenCL 3.0, Rusticl atšķiras no Clover ar to, ka tas atbalsta OpenCL paplašinājumus attēlu apstrādei, bet vēl neatbalsta FP16 formātu. Rusticl izmanto rust-bindgen, lai ģenerētu saistījumus Mesa un OpenCL, ļaujot Rust funkcijas izsaukt no C koda un otrādi.
Rust valodas atbalsta kods un rusticl draiveris ir pieņemti Mesa kodolā un tiks izlaisti Mesa 22.3 versijā, kas paredzēta novembra beigās. Rust un rusticl atbalsts pēc noklusējuma tiks atspējots un būs nepieciešamas skaidras būvēšanas opcijas, piemēram, "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". Papildu būvēšanas atkarības ietver rustc kompilatoru, bindgen, LLVM, SPIRV-Tools un 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 un Mesa 22.3.
Avots: opennet.ru
