היישום החדש של OpenCL (rusticl), שנכתב ב-Rust, המפותח עבור פרויקט Mesa, עבר בהצלחה את חבילת הבדיקות CTS (Kronos Conformance Test Suite) המשמשת את קונסורציום Khronos להערכת תאימות למפרטי OpenCL 3.0. הפרויקט מפותח על ידי Karol Herbst מ-Red Hat, המעורב בפיתוח של Mesa, דרייבר הנובו וה-OpenCL Open Stack. יצוין כי קרול יצרה קשר עם Khronos בנוגע להסמכה הרשמית של תמיכה ב-OpenCL 3.0 בכפריות.
הבדיקות הושלמו על מערכת עם דור 12 של אינטל GPU (Alder Lake). העבודה בוצעה באמצעות דרייבר Mesa Iris, אך הפרויקט אמור לעבוד גם עם דרייברים אחרים של Mesa המשתמשים בייצוג ביניים חסר סוג (IR) של הצללות NIR. הבקשה למיזוג Rusticle עם Mesa עדיין בבדיקה ולא התקבלה החלטה אם לכלול את קוד Rust ב-Mesa. לפני ש-Rusticl יתקבל להרכב Mesa הראשי, אתה יכול להשתמש בענף נפרד לבנייה, בעת הקומפילציה עליך לציין את פרמטרי ה-build "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= נָכוֹן".
Rusticle פועל כאנלוגי ל-OpenCL Frontend Clover של Mesa ומפותח גם באמצעות ממשק Gallium המסופק ב-Mesa. יתד תלתן נטוש במשך זמן רב והכפריים מוצבים כמחליפו העתידי. בנוסף להשגת תאימות OpenCL 3.0, פרויקט Rusticle שונה מ-Clover בתמיכה בהרחבות OpenCL לעיבוד תמונה, אך עדיין אינו תומך בפורמט FP16.
Для генерации биндингов для Mesa и OpenCL, позволяющих вызывать Rust-функции из кода на Си и наоборот, в Rusticl задействован rust-bindgen. Возможность использования языка Rust в проекте Mesa обсуждается с 2020 года. Из плюсов поддержки Rust упоминается повышение безопасности и качества драйверов за счёт избавления от типовых проблем при работе с памятью, а также возможность включения в состав Mesa сторонних наработок, таких как Kazan (реализация Vulkan на Rust). Из недостатков отмечается усложнение системы сборки, нежелание привязываться к пакетной системе cargo, расширение требований к сборочному окружению и необходимость включения компилятора Rust в сборочные зависимости, обязательные для построения ключевых компонентов рабочего стола в Linux.
מקור: OpenNet.ru
