Mesa プロジェクトの開発者は、Rusticl ドライバーが Khronos 組織によって認定されたことを発表しました。このドライバーは、CTS (Kronos Conformance Test Suite) セットのすべてのテストに合格し、API とクロスプラットフォームの並列コンピューティングを組織するための C 言語の拡張機能。 証明書を取得すると、規格への準拠を正式に宣言し、関連するクロノス商標を使用できるようになります。 テストは、Gallium3.0D Iris ドライバーを使用して、第 12 世代統合インテル GPU を搭載したシステムで実行されました。
このドライバーは Rust で書かれており、Mesa、Nouveau ドライバー、および OpenCL オープン スタックの開発に携わっている Red Hat の Karol Herbst によって開発されました。 Rusticle は、Mesa の OpenCL フロントエンド Clover の類似物として機能し、Mesa で提供される Gallium インターフェイスを使用して開発されています。 Clover は長い間放棄されており、Rusticl は将来の代替として位置付けられています。 OpenCL 3.0 との互換性を実現することに加えて、Rusticle プロジェクトは画像処理用の OpenCL 拡張機能をサポートする点で Clover とは異なりますが、FP16 形式はまだサポートしていません。 Mesa と OpenCL のバインディングを生成して、C コードから Rust 関数を呼び出すこと、またはその逆を可能にするために、Rusticle では Rust-bindgen が使用されます。
Rust 言語サポート コードと Rusticl ドライバーは Mesa メインストリームに受け入れられ、22.3 月下旬に予定されている Mesa 2021 リリースで提供される予定です。 Rust およびrusticl のサポートはデフォルトで無効になり、「-D gallium-rusticl=true -Dllvm=enabled -Drust_std=XNUMX」オプションを明示的に指定してビルドする必要があります。 ビルドする場合、追加の依存関係として、rustc コンパイラー、bindgen バインディング ジェネレーター、LLVM、SPIRV-Tools、および 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とメサ22.3。
出所: オープンネット.ru
