ʻO ka hoʻokō OpenCL hou (rusticl), i kākau ʻia ma Rust, i hoʻomohala ʻia no ka papahana Mesa, ua holo pono i ka CTS (Kronos Conformance Test Suite) hoʻāʻo suite i hoʻohana ʻia e ka Khronos consortium e loiloi i ka hoʻohālikelike ʻana me nā kikoʻī OpenCL 3.0. Ke kūkuluʻia nei ka papahana e Karol Herbst mai Red Hat, ka mea i komo i ka uluʻana o Mesa, ka mea hoʻokele Nouveau a me ka OpenCL open stack. Ua ʻike ʻia ua hoʻopili ʻo Carol iā Khronos e pili ana i ka palapala hōʻoia o OpenCL 3.0 kākoʻo ma rusticl.
Ua hoʻopau ʻia nā hoʻokolohua ma kahi ʻōnaehana me kahi 12th hanauna Intel GPU (Alder Lake). Ua hana ʻia ka hana me ka hoʻohana ʻana i ka mea hoʻokele Mesa Iris, akā pono e hana pū ka pāhana me nā mea hoʻokele Mesa ʻē aʻe e hoʻohana ana i ka typeless intermediate representation (IR) o nā shaders NIR. Ke nānā ʻia nei ke noi e hoʻohui iā Rusticle me Mesa a ʻaʻohe hoʻoholo i hoʻoholo ʻia inā e hoʻokomo ʻia ka Rust code ma Mesa. Ma mua o ka ʻae ʻia ʻana o Rusticl i loko o ka haku mele Mesa nui, hiki iā ʻoe ke hoʻohana i kahi lālā ʻokoʻa no ke kūkulu ʻana, i ka wā e hōʻuluʻulu ai ʻoe e kuhikuhi i nā ʻāpana kūkulu "-Dgallium-rusticl = ʻoiaʻiʻo -Dopencl-spirv = ʻoiaʻiʻo -Dshader-cache = ʻoiaʻiʻo -Dllvm = ʻoiaʻiʻo”.
Hana ʻo Rusticle ma ke ʻano he analogue o Mesa's OpenCL frontend Clover a hoʻomohala pū ʻia me ka hoʻohana ʻana i ka interface Gallium i hāʻawi ʻia ma Mesa. Ua haʻalele ʻia ka lāʻau Clover no ka manawa lōʻihi a ua hoʻonoho ʻia ʻo rusticl i mea pani hou. Ma waho aʻe o ka loaʻa ʻana o OpenCL 3.0 kūpono, ʻokoʻa ka papahana Rusticle mai Clover i ke kākoʻo ʻana i nā hoʻonui OpenCL no ka hoʻoili kiʻi, akā ʻaʻole i kākoʻo i ka format FP16.
Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen. Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.
Source: opennet.ru
