Daniel Almeida, ki dela na razvoju video kodekov pri Collabori, je objavil na poštnem seznamu razvijalcev Linux- začetna implementacija gonilnika Tyr za grafične procesorje ARM Mali, ki uporabljajo tehnologijo Command Stream Frontend (CSF), kot so Mali G310, G510 in G710. Koda gonilnika je napisana v Rustu in obsega nekaj več kot 600 vrstic kode. Delo na gonilniku Tyr skupaj izvajajo Collabora, Arm in Google.
Okvir za ustvarjanje novega gonilnika uporablja komponente abstraktnega gonilnika rust_platform_driver in gonilnika Nova, razvitega za grafične procesorje NVIDIA, napisanega v Rustu in delno dodanega jedru 6.15. Funkcionalnost za interakcijo z grafičnim procesorjem Mali je prenesena iz obstoječega gonilnika DRM Panthor (Direct Rendering Manager), napisanega v jeziku C. uAPI gonilnika Tyr je identičen uAPI gonilnika Panthor, kar omogoča uporabo obstoječih komponent uporabniškega prostora z njim.
Tehnologija CSF, ki se uporablja od 10. generacije grafičnih procesorjev Mali, je znana po tem, da nekatere funkcije gonilnikov prenaša na stran vdelane programske opreme in uporablja nov model za organizacijo izvajanja dela na grafičnem procesorju. V grafičnih procesorjih z vmesnikom CSF se namesto modela, ki temelji na pošiljanju verige del, uporablja model, ki temelji na pretoku ukazov, z razporejanjem čakalne vrste toka ukazov na strani vdelane programske opreme. Za organizacijo dela razporejevalnika je v grafični procesor vgrajen ločen mikrokrmilnik Cortex-M7, za izvajanje ukazov CSF pa je predvidena posebna enota za izvajanje ukazov (Command Execution Unit).
Funkcionalnost gonilnika Tyr še vedno zaostaja za gonilnikom Panthor, vendar nameravajo razvijalci postopoma zmanjševati vrzel, dokler ne bo dosežena pariteta v zmogljivostih gonilnikov. Manjkajoče funkcije zahtevajo integracijo dodatnih abstrakcij v jedro za ustvarjanje gonilnikov v Rustu, zato bo razvoj gonilnika Tyr sinhroniziran z dodajanjem teh abstrakcij v jedro. Jedro na primer še nima zmogljivosti za preslikavo pomnilnika v gonilnikih Rust za grafične procesorje, ki se razvijajo v kompletu popravkov GPUVM, ki še ni bil sprejet.
Vir: opennet.ru
