Daniel Almeida, yang bekerja di bidang pengembangan codec video di Collabora, memposting di milis pengembang. Linux- Implementasi awal driver Tyr untuk GPU ARM Mali yang menggunakan teknologi Command Stream Frontend (CSF), seperti Mali G310, G510, dan G710. Kode driver ditulis dalam Rust dan terdiri dari lebih dari 600 baris kode. Pengerjaan driver Tyr dilakukan bersama oleh Collabora, Arm, dan Google.
Kerangka kerja untuk membuat driver baru menggunakan komponen driver rust_platform_driver abstrak dan driver Nova, yang dikembangkan untuk GPU NVIDIA, ditulis dalam Rust dan sebagian ditambahkan ke kernel 6.15. Fungsionalitas untuk berinteraksi dengan GPU Mali diambil dari driver DRM Panthor (Direct Rendering Manager) yang sudah ada, yang ditulis dalam C. uAPI driver Tyr identik dengan uAPI driver Panthor, yang memungkinkan penggunaan komponen ruang pengguna yang sudah ada dengannya.
Teknologi CSF, yang digunakan sejak GPU Mali generasi ke-10, terkenal karena memindahkan beberapa fungsi driver ke sisi firmware dan menggunakan model baru untuk mengatur eksekusi kerja pada GPU. Pada GPU dengan antarmuka CSF, alih-alih model yang didasarkan pada pengiriman rangkaian pekerjaan, model yang didasarkan pada aliran perintah digunakan dengan penjadwalan antrean aliran perintah pada sisi firmware. Untuk mengatur pekerjaan penjadwal, mikrokontroler Cortex-M7 terpisah dibangun ke dalam GPU, dan unit eksekusi perintah khusus (Unit Eksekusi Perintah) disediakan untuk mengeksekusi instruksi CSF.
Fungsionalitas Tyr masih tertinggal dari driver Panthor, tetapi pengembang bermaksud untuk secara bertahap memperkecil kesenjangan tersebut hingga tercapainya paritas dalam kapabilitas driver. Fitur-fitur yang hilang memerlukan abstraksi tambahan untuk diintegrasikan ke dalam kernel guna membuat driver di Rust, sehingga pengembangan driver Tyr akan disinkronkan dengan penambahan abstraksi ini ke kernel. Misalnya, kernel belum memiliki kapabilitas untuk pemetaan memori pada driver Rust untuk GPU, yang sedang dikembangkan dalam set patch GPUVM, yang belum diadopsi.
Sumber: opennet.ru
