Daniel Almeida, yang mengusahakan pembangunan codec video di Collabora, telah menyiarkannya di senarai mel pembangun Linux- pelaksanaan awal pemacu Tyr untuk GPU ARM Mali yang menggunakan teknologi Command Stream Frontend (CSF), seperti Mali G310, G510 dan G710. Kod pemacu ditulis dalam Rust dan terdiri daripada lebih 600 baris kod. Kerja pada pemacu Tyr sedang dijalankan bersama oleh Collabora, Arm dan Google.
Rangka kerja untuk mencipta pemacu baharu menggunakan komponen pemacu rust_platform_driver abstrak dan pemacu Nova, yang dibangunkan untuk GPU NVIDIA, ditulis dalam Rust dan ditambah sebahagiannya pada kernel 6.15. Fungsi untuk berinteraksi dengan GPU Mali dialihkan daripada pemacu DRM Panthor (Pengurus Render Langsung) sedia ada, ditulis dalam C. uAPI pemandu Tyr adalah sama dengan uAPI pemacu Panthor, yang membenarkan penggunaan komponen ruang pengguna sedia ada dengannya.
Teknologi CSF, yang digunakan sejak GPU Mali generasi ke-10, terkenal kerana mengalihkan beberapa fungsi pemacu ke bahagian perisian tegar dan menggunakan model baharu untuk mengatur pelaksanaan kerja pada GPU. Dalam GPU dengan antara muka CSF, bukannya model berdasarkan penghantaran rangkaian kerja, model berdasarkan aliran arahan digunakan dengan penjadualan baris gilir arahan pada bahagian perisian tegar. Untuk mengatur kerja penjadual, mikropengawal Cortex-M7 yang berasingan dibina ke dalam GPU, dan unit pelaksanaan perintah khas (Unit Pelaksanaan Perintah) disediakan untuk melaksanakan arahan CSF.
Fungsi Tyr masih ketinggalan berbanding pemandu Panthor, tetapi pembangun berhasrat untuk mengurangkan jurang secara beransur-ansur sehingga pariti dalam keupayaan pemandu dicapai. Ciri yang hilang memerlukan abstraksi tambahan untuk disepadukan ke dalam kernel untuk mencipta pemacu dalam Rust, jadi pembangunan pemacu Tyr akan disegerakkan dengan penambahan abstraksi ini pada kernel. Sebagai contoh, kernel belum lagi mempunyai keupayaan untuk pemetaan memori dalam pemacu Rust untuk GPU, yang sedang dibangunkan dalam set tampung GPUVM, yang masih belum diterima pakai.
Sumber: opennet.ru
