Pêkanîna nû ya OpenCL (rusticl), ku bi Rust hatî nivîsandin, ku ji bo projeya Mesa-yê hatî pêşve xistin, bi serketî pakêta testê ya CTS (Kronos Conformance Test Suite) ku ji hêla konsorsiyuma Khronos ve hatî bikar anîn da ku lihevhatina bi taybetmendiyên OpenCL 3.0 binirxîne derbas kir. Proje ji hêla Karol Herbst ve ji Red Hat ve hatî pêşve xistin, ku di pêşkeftina Mesa, ajokarê Nouveau û stacka vekirî ya OpenCL de beşdar e. Tê zanîn ku Carol bi Khronos re di derbarê pejirandîkirina fermî ya piştgirîya OpenCL 3.0 di rusticl de têkilî danî.
Testên li ser pergalek bi nifşa 12-an Intel GPU (Alder Lake) hatin qedandin. Xebat bi karanîna ajokera Mesa Iris hate kirin, lê divê proje bi ajokarên din ên Mesa re jî bixebite ku nûneriya navîn a bê tîp (IR) ya şaderên NIR bikar tînin. Daxwaza yekkirina Rusticle bi Mesa re hîna jî di binê çavan de ye û biryarek nehatiye dayîn ka koda Rust di Mesa de were vegirtin. Berî ku Rusticl di pêkhateya Mesa ya sereke de were pejirandin, hûn dikarin şaxek cihêreng ji bo avakirinê bikar bînin, dema berhevkirina wê divê hûn pîvanên çêkirinê diyar bikin "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= rast".
Rusticle wekî analogek Clover-a pêşîn a OpenCL ya Mesa tevdigere û di heman demê de bi karanîna navbeynkariya Galliumê ya ku di Mesa de hatî peyda kirin jî tête pêşve xistin. Parçeya Clover ji bo demek dirêj ve hatî terikandin û rusticl wekî şûna wê ya pêşerojê tête cîh kirin. Digel bidestxistina lihevhatina OpenCL 3.0, projeya Rusticle ji Clover-ê di piştgirîkirina pêvekên OpenCL-ê de ji bo hilberandina wêneyê cûda dibe, lê hîn jî formata FP16 piştgirî nake.
Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen. Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.
Source: opennet.ru
