Tyr esitetään, Linux- Rust-kielellä kirjoitettu ajuri ARM Mali -näytönohjaimelle

Daniel Almeida, joka työskentelee videokoodekkien kehittämisen parissa Collaboralla, julkaisi viestin kehittäjien postituslistalla Linux- Tyr-ajurin alustava toteutus ARM Mali -näytönohjaimille, jotka hyödyntävät Command Stream Frontend (CSF) -teknologiaa, kuten Mali G310, G510 ja G710. Ajurikoodi on kirjoitettu Rust-kielellä ja se käsittää hieman yli 600 riviä koodia. Tyr-ajurin kehittämistä tekevät yhteistyössä Collabora, Arm ja Google.

Uuden ajurin luomiseen käytetty viitekehys käyttää abstraktin rust_platform_driver-ajurin ja NVIDIA-näytönohjaimille kehitetyn Nova-ajurin komponentteja, jotka on kirjoitettu Rustilla ja osittain lisätty 6.15-ytimeen. Mali-näytönohjaimen kanssa vuorovaikutukseen tarvittavat toiminnot on siirretty olemassa olevasta Panthor (Direct Rendering Manager) DRM -ajurista, joka on kirjoitettu C-kielellä. Tyr-ajurin uAPI on identtinen Panthor-ajurin uAPI:n kanssa, mikä mahdollistaa olemassa olevien käyttäjätilan komponenttien käytön sen kanssa.

Mali-näytönohjainten 10. sukupolvesta lähtien käytetty CSF-teknologia on merkittävä siinä, että se on siirtänyt joitakin ajuritoimintoja laiteohjelmistopuolelle ja käyttänyt uutta mallia työn suorittamisen järjestämiseen näytönohjaimella. CSF-rajapinnalla varustetuissa näytönohjaimissa käytetään komentokulkuun perustuvaa mallia työjonon lähettämiseen perustuvan mallin sijaan, jossa komentokulkujonon ajoitus tapahtuu laiteohjelmistopuolella. Aikatauluttajan työn järjestämiseksi näytönohjaimeen on sisäänrakennettu erillinen Cortex-M7-mikrokontrolleri, ja CSF-käskyjen suorittamiseen on erityinen komentojen suoritusyksikkö (Command Execution Unit).

Tyrin toiminnallisuus on edelleen Panthor-ajurin jäljessä, mutta kehittäjät aikovat vähitellen pienentää kuilua, kunnes ajuriominaisuuksien pariteetti saavutetaan. Puuttuvat ominaisuudet vaativat lisäabstraktioiden integrointia ytimeen ajurien luomiseksi Rustissa, joten Tyr-ajurin kehitys synkronoidaan näiden abstraktioiden lisäämisen kanssa ytimeen. Esimerkiksi ytimessä ei vielä ole ominaisuuksia muistin yhdistämiseen Rust-ajureissa GPU:ille, joita kehitetään GPUVM-korjauspaketissa, jota ei ole vielä otettu käyttöön.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster