Daniel Almeida, koji radi na razvoju video kodeka u Collabori, objavio je na mailing listi programera Linux- početna implementacija Tyr drajvera za ARM Mali GPU-ove koji koriste Command Stream Frontend (CSF) tehnologiju, kao što su Mali G310, G510 i G710. Kod drajvera je napisan u Rustu i sadrži nešto više od 600 linija koda. Rad na Tyr drajveru zajednički provode Collabora, Arm i Google.
Okvir za kreiranje novog drajvera koristi komponente apstraktnog drajvera rust_platform_driver i Nova drajvera, razvijenih za NVIDIA GPU-ove, napisanih u Rustu i djelimično dodanih u kernel 6.15. Funkcionalnost za interakciju s Mali GPU-om je preuzeta iz postojećeg Panthor (Direct Rendering Manager) DRM drajvera, napisanog u C-u. uAPI Tyr drajvera je identičan uAPI-ju Panthor drajvera, što omogućava korištenje postojećih komponenti korisničkog prostora s njim.
CSF tehnologija, koja se koristi od 10. generacije Mali GPU-a, značajna je po premještanju nekih funkcija drajvera na stranu firmvera i korištenju novog modela za organizaciju izvršavanja posla na GPU-u. Kod GPU-a sa CSF interfejsom, umjesto modela zasnovanog na slanju lanca poslova, koristi se model zasnovan na toku komandi sa raspoređivanjem reda toka komandi na strani firmvera. Za organizaciju rada raspoređivača, u GPU je ugrađen zaseban mikrokontroler Cortex-M7, a za izvršavanje CSF instrukcija predviđena je posebna jedinica za izvršavanje komandi (Command Execution Unit).
Tyrova funkcionalnost i dalje zaostaje za Panthor drajverom, ali programeri namjeravaju postepeno smanjivati jaz dok se ne postigne paritet u mogućnostima drajvera. Nedostajuće funkcije zahtijevaju dodatne apstrakcije koje treba integrirati u kernel kako bi se kreirali drajveri u Rustu, tako da će razvoj Tyr drajvera biti sinhronizovan sa dodavanjem ovih apstrakcija u kernel. Na primjer, kernel još uvijek nema mogućnosti za mapiranje memorije u Rust drajverima za GPU-ove, koji se razvijaju u GPUVM setu zakrpa, koji još nije usvojen.
izvor: opennet.ru
