Collabora'da video codec geliştirme alanında çalışan Daniel Almeida, geliştirici e-posta listesine bir mesaj gönderdi. Linux- Mali G310, G510 ve G710 gibi Command Stream Frontend (CSF) teknolojisini kullanan ARM Mali GPU'lar için Tyr sürücüsünün ilk uygulaması. Sürücü kodu Rust dilinde yazılmıştır ve 600 satırdan biraz fazla koddan oluşmaktadır. Tyr sürücüsü üzerindeki çalışmalar Collabora, Arm ve Google tarafından ortaklaşa yürütülmektedir.
Yeni sürücüyü oluşturmak için kullanılan çerçeve, soyut rust_platform_driver sürücüsünün bileşenlerini ve NVIDIA GPU'ları için geliştirilen, Rust'ta yazılmış ve kısmen 6.15 çekirdeğine eklenmiş Nova sürücüsünü kullanır. Mali GPU ile etkileşime girme işlevi, C'de yazılmış mevcut Panthor (Direct Rendering Manager) DRM sürücüsünden taşınmıştır. Tyr sürücüsünün uAPI'si, mevcut kullanıcı alanı bileşenlerinin onunla kullanılmasına izin veren Panthor sürücüsünün uAPI'siyle aynıdır.
Mali GPU'ların 10. neslinden beri kullanılan CSF teknolojisi, bazı sürücü işlevlerini donanım yazılımı tarafına taşıması ve GPU'da iş yürütmeyi düzenlemek için yeni bir model kullanması nedeniyle dikkat çekicidir. CSF arayüzlü GPU'larda, bir iş zinciri göndermeye dayalı bir model yerine, donanım yazılımı tarafında komut akışı kuyruğunun planlanmasıyla bir komut akışına dayalı bir model kullanılır. Planlayıcının işini düzenlemek için GPU'ya ayrı bir Cortex-M7 mikrodenetleyici yerleştirilir ve CSF talimatlarını yürütmek için özel bir komut yürütme birimi (Komut Yürütme Birimi) sağlanır.
Tyr'ın işlevselliği hala Panthor sürücüsünün gerisinde kalıyor, ancak geliştiriciler sürücü yeteneklerinde eşitlik sağlanana kadar farkı kademeli olarak azaltmayı amaçlıyor. Eksik özellikler, Rust'ta sürücüler oluşturmak için çekirdeğe ek soyutlamaların entegre edilmesini gerektiriyor, bu nedenle Tyr sürücüsünün geliştirilmesi bu soyutlamaların çekirdeğe eklenmesiyle senkronize edilecek. Örneğin, çekirdek henüz GPU'lar için GPU'lar için Rust sürücülerinde bellek eşleme yeteneklerine sahip değil, GPUVM yama setinde geliştiriliyor ve henüz benimsenmedi.
Kaynak: opennet.ru
