Collaboraでビデオコーデック開発に携わるダニエル・アルメイダは、開発者メーリングリストに投稿した。 Linux- コマンドストリームフロントエンド(CSF)技術を採用したARM Mali GPU(Mali G310、G510、G710など)向けTyrドライバの初期実装。ドライバコードはRustで記述されており、600行強のコードで構成されています。Tyrドライバの開発は、Collabora、Arm、Googleが共同で行っています。
新しいドライバを作成するためのフレームワークは、抽象ドライバ rust_platform_driver と、NVIDIA GPU向けに開発されたRustで記述され、6.15カーネルに部分的に追加されたNovaドライバのコンポーネントを使用しています。Mali GPUとのインタラクション機能は、C言語で記述された既存のPanthor (Direct Rendering Manager) DRMドライバから移植されています。TyrドライバのuAPIはPanthorドライバのuAPIと同一であり、既存のユーザー空間コンポーネントをTyrドライバと併用できます。
第10世代Mali GPUから採用されているCSFテクノロジーは、一部のドライバー機能をファームウェア側に移行し、GPU上での作業実行を体系化する新しいモデルを採用している点が特徴的です。CSFインターフェースを備えたGPUでは、作業チェーンの送信に基づくモデルではなく、コマンドフローに基づくモデルが採用され、ファームウェア側でコマンドフローキューのスケジューリングが行われます。スケジューラの作業を体系化するために、GPUには独立したCortex-M7マイクロコントローラーが内蔵され、CSF命令を実行するための専用のコマンド実行ユニット(コマンド実行ユニット)が提供されます。
Tyrの機能は依然としてPanthorドライバに遅れをとっていますが、開発者たちはドライバの機能が同等になるまで、この差を徐々に縮めていく予定です。不足している機能をRustでドライバを作成するには、カーネルに追加の抽象化を統合する必要があるため、Tyrドライバの開発はこれらの抽象化のカーネルへの追加と同期されます。例えば、GPU用のRustドライバのメモリマッピング機能はカーネルにまだ実装されていません。この機能はGPUVMパッチセットで開発されていますが、まだ採用されていません。
出所: オープンネット.ru
