A közelmúltban jelent meg az a hír a drm-asahi illesztőprogram előzetes megvalósítását javasolták sorozatos GPU-khoz Az Apple M13 és M14 chipekben használt Apple AGX G1 és G2 a Linux kernel fejlesztői levelezőlistáján.
A vezérlő Rust nyelven van írva plusz, tartalmaz egy sor univerzális hivatkozást a DRM alrendszerről (Direct Rendering Manager), amely felhasználható más grafikus illesztőprogramok fejlesztésére a Rustban.
A kiadott patch készlet mostanáig csak megvitatásra javasolták a központi fejlesztők (RFC), de a felülvizsgálat befejezése és a feltárt hiányosságok eltávolítása után felvehető a törzscsapatba.
Ez az első verzióm a Rust abstractions for DRM-hez alrendszer. Magát az absztrakciót is tartalmazza, néhány kisebb előfeltétel változtatások a C oldalon, valamint a drm-asahi GPU illesztőprogramon (az absztrakciók használatára vonatkozó hivatkozásként, de nem feltétlenül közös leszállásra szánták).
Ezeket a foltokat a fa tetején alkalmazzák [1]-ben, amely a 6.3-rc1, sok absztrakció/rozsda támogatás committel hozzáadva felett. Ezek többsége nem előfeltétele a DRM-absztrakcióknak. maguktól, de csak a sofőrtől.
December óta a vezérlő benne van a csomag a kernellel az Asahi Linux disztribúcióhoz és a projekt felhasználói tesztelték.
Az illesztőprogram Linux disztribúciókon használható a grafikus környezet megszervezése dApple eszközök SoC M1, M1 Pro, M1 Max, M1 Ultra és M2-vel. Az illesztőprogram fejlesztése során nemcsak a biztonság növelésére törekedtek a CPU-oldalon végrehajtott kódban végrehajtott memóriával végzett munka során előforduló hibák minimalizálásával, hanem részben a firmware-rel való interakció során felmerülő problémák elleni védelemre is.
Különösen az illesztőprogram bizonyos kötéseket biztosít a megosztott memóriastruktúrákhoz nem biztonságos a firmware-ben a vezérlővel való interakcióhoz használt összetett mutatósorokkal. A javasolt illesztőprogram az asahi Mesa meghajtóval együtt használatos, amely felhasználói terület OpenGL támogatást biztosít, és átmegy az OpenGL ES 2 kompatibilitási teszteken. és majdnem készen áll az OpenGL ES 3.0 támogatására.
Ugyanakkor a kernel szinten működő illesztőprogram kezdetben a Vulkan API jövőbeli támogatását szem előtt tartva fejlesztették ki, és a felhasználói térrel való interakcióhoz szükséges programozási felületet az új Intel Xe illesztőprogram által biztosított UAPI-val tervezték.
Át a ismert problémák a következők szerepelnek:
- A meglévő Rust-integráció jelenleg nem támogatja az absztrakciók modulként történő építését, így a Rust-absztrakciók csak a beágyazott DRM-komponensekhez érhetők el.
- A DRM nagymértékben támaszkodik a vezérlőobjektumok "alosztályozási" mintájára, és ez nem illik a Rusthoz.
- Jelenleg csak az van megvalósítva, ami a vezérlőhöz szükséges (plusz egy kevés
nyilvánvaló extrák, ahol van értelme a jobb API integritásnak). - A drm::mm végül az absztrakcióba beépített mutexet igényel
hogy ezt a szokásos Rust-mutathatósági szabályokkal delegálja a felhasználóra.
Ennek az az oka, hogy a csomópontok bármikor eldobhatók, és ezek a műveletek
szinkronban kell lennie. - A Mesa oldalon jelenleg a Gallium illesztőprogramja van, amely többnyire már upstream (az UAPI bitek többnyire hiányoznak), és
megfelel a dEQP GLES2/EGL teszteknek, a legtöbb GLES3.0 megfelelt
A folyamatban lévő munkák upstream ágai. Ez egy közösségi meghajtó visszafejtés, ezért megemlítjük, hogy még sok a tennivaló ezen a téren.
végre, ha az vagy érdekelne többet megtudni róla, a részleteket itt ellenőrizheti a következő link.