Daniel Almeida, i angazhuar në zhvillimin e kodeve video në kompaninë Collabora, publikoi në listën e dërgimit për zhvilluesit e bërthamës Linux një implementim fillestar të drejtuesit Tyr për GPU ARM Mali, ku aplikohet teknologjia CSF (Command Stream Frontend), si Mali G310, G510 dhe G710. Kodi i drejtuesit është shkruar në gjuhën Rust dhe ka pak më shumë se 600 rreshta kodi. Puna mbi drejtuesin Tyr po zhvillohet në bashkëpunim me punonjësit e kompanive Collabora, Arm dhe Google.
Si një kornizë për krijimin e drejtuesit të ri, janë përdorur komponentë të drejtuesit të zakonshëm rust_platform_driver dhe drejtuesit Nova, i zhvilluar për GPU NVIDIA, i shkruar në Rust dhe pjesërisht i shtuar në bërthamën 6.15. Funksionaliteti për ndërveprimin me GPU Mali është portuar nga drejtuesi ekzistues DRM Panthor (Direct Rendering Manager), i shkruar në gjuhën C. uAPI i drejtuesit Tyr është identike me uAPI të drejtuesit Panthor, çfarë lejon përdorimin me komponentët ekzistues të hapësirës së përdoruesit.
Teknologjia CSF, e aplikuar që nga brezi i 10-të të GPU Mali, është e njohur për transferimin në anën e firmware disa funksionesh të drejtuesit dhe angazhimin e një modeli të ri të organizimit të ekzekutimit në GPU. Në GPU me ndërfaqen CSF, në vend të modelit mbi bazën e dërgimit të zinxhirit të punëve, përdoret modeli mbi bazën e rrjedhës së komandave me planifikimin e radhës së rrjedhës së komandave në anën e firmware. Për të organizuar punën e planifikuesit, në GPU është integruar një mikro-kontroller i veçantë Cortex-M7, dhe për ekzekutimin e instrukcioneve CSF parashikohet një njës i veçantë ekzekutimi komandash (Command Execution Unit).
Funksionaliteti i Tyr akoma mbetet pas drejtuesit Panthor, por zhvilluesit kanë për qëllim të reduktojnë gradualisht hendekun deri sa të arrihet barazimi në mundësitë e drejtuesve. Funksionet e humbura kërkojnë integrimin në bërthamë të abstraksioneve shtesë për krijimin e drejtuesve në Rust, kështu që zhvillimi i drejtuesit Tyr do të koordinohet me shtimin në bërthamë të këtyre abstraksioneve. Për shembull, në bërthamë akoma mungojnë mundësitë për mapim të memorjes në drejtuesit Rust për GPU, që janë në zhvillim në një grup patch-esh për GPUVM që ende nuk është pranuar.
Burimi: opennet.ru
