Daniel Almeida, kes tegeleb videokoodikute arendamisega ettevĂ”ttes Collabora, avaldas Linuxi tuuma arendajate postitusloendis Tyr'i draiveri esialgse rakenduse ARM Mali GPU-dele, mis kasutab CSF (Command Stream Frontend) tehnoloogiat nagu Mali G310, G510 ja G710. Draiveri kood on kirjutatud Rustis ja koosneb veidi ĂŒle 600 koodirea. Tyr'i draiveri arendust viivad lĂ€bi töötajad ettevĂ”tetest Collabora, Arm ja Google.
Uue draiveri loomiseks kasutati abstraktse draiveri rust_platform_driver ja Rustis kirjutatud NVIDIA GPU-dele suunatud Nova draiveri komponente, mis on osaliselt lisatud tuuma versioonis 6.15. Funktsionaalsus suhtlemiseks Mali GPU-ga on portitud olemasolevast DRM-draiverist Panthor (Direct Rendering Manager), mis on kirjutatud C keeles. Draiveri Tyr uAPI on identne draiveri Panthor uAPI-ga, mis vÔimaldab kasutada juba olemasolevaid komponendi kasutajaruumi.
CSF-tehnoloogia, mida rakendatakse alates Mali GPU-de 10. pĂ”lvkonnast, paistab silma selle poolest, et mĂ”ned draiveri funktsioonid on viidud vĂ€lja firnware'i ning on kasutusele vĂ”etud uus tööde tĂ€itmise korraldus mudel GPU-s. CSF-interfÀÀsi kasutav GPU rakendab tööde edastamise mudeli asemel kĂ€suvoo mudeli, mis planeerib kĂ€suvoo jĂ€rjekorda firnware'i kĂŒljel. Planeerija tööks on GPU-sse integreeritud eraldi Cortex-M7 mikrokontroller ning CSF kĂ€skude tĂ€itmiseks on ette nĂ€htud spetsiaalne kĂ€skude tĂ€itmise plokk (Command Execution Unit).
Tyr'i funktsionaalsus jÀÀb alla Panthori draiverile, kuid arendajad kavatsevad jĂ€rk-jĂ€rgult vĂ€hendada vahet, kuni draiverite vĂ”imekus saavutab pariteedi. Puuduvad funktsioonid nĂ”uavad aluse lisamist tĂ€iendavate abstraktsioonide kaudu Rusti draiverite loomiseks, seetĂ”ttu sĂŒnkroniseeritakse Tyr'i draiveri areng nende abstraktsioonide upotamisega kernelisse. NĂ€iteks pole kernelis veel olemas vĂ”imalusi GPU Rust-draiverites mĂ€lu kaardistamiseks, mis on arendamise all ning veel mitte vastu vĂ”etud GPUVM plaate komplektis.
Allikas: opennet.ru
