Nad teevad ettepaneku rakendada Apple AGX G13 ja G14 jaoks Rust keeles kirjutatud GPU draiverit

Linux Apple Rust

See on Apple AGX G13 ja G14 seeria GPU-de jaoks üsna põhjalik draiver.
Tänane kontroller ühildub SoC-dega

Hiljuti avaldati uudis, mis on pakutud välja drm-asahi draiveri esialgne rakendamine seeria GPU jaoks Apple M13 ja M14 kiipides kasutatud Apple AGX G1 ja G2 Linuxi kerneli arendajate meililistis.

Kontroller on kirjutatud roostes pluss sisaldab universaalsete linkide komplekti DRM-i alamsüsteemi kohta (Direct Rendering Manager), mida saab kasutada teiste graafikadraiverite arendamiseks rakenduses Rust.

Välja antud plaastrikomplekt kuni praeguseni on pakutud ainult aruteluks põhiarendajate (RFC) poolt, kuid neid võidakse vastu võtta põhimeeskonda pärast ülevaatuse lõpetamist ja tuvastatud puuduste kõrvaldamist.

See on minu esimene versioon Rust abstraktsioonidest DRM-i jaoks allsüsteem. Sisaldab abstraktsioone ise, mõned väikesed eelduslikud muudatused nii C-poolel kui ka drm-asahi GPU draiveris (viiteks selle kohta, kuidas abstraktsioone kasutatakse, kuid mitte tingimata kavatsetakse koos maanduda).

Need plaastrid on rakendatud puu ülaossa [1], mis põhineb 6.3-rc1, millele on lisatud palju abstraktsiooni/roostetugi eespool. Enamik neist ei ole DRM-i abstraktsioonide eelduseks. ise, vaid ainult juhilt.

Alates detsembrist on kontroller lisatud pakett koos tuumaga Asahi Linuxi distributsiooni jaoks ja seda on testinud selle projekti kasutajad.

Draiverit saab kasutada Linuxi distributsioonides korraldada graafiline keskkond dApple'i seadmed SoC M1, M1 Pro, M1 Max, M1 Ultra ja M2-ga. Draiveri arendamisel püüti mitte ainult suurendada turvalisust, minimeerides CPU poolel käivitatavas koodis mäluga töötamisel vigu, vaid ka osaliselt kaitsta püsivaraga suhtlemisel tekkivate probleemide eest.

Eelkõige draiver pakub jagatud mälustruktuuride jaoks teatud seoseid ei ole turvaline püsivaras kasutatavate keeruliste näpunäidete jadadega kontrolleriga suhtlemiseks. Pakutud draiverit kasutatakse koos asahi Mesa draiveriga, mis pakub kasutajaruumi OpenGL-i tuge ja läbib OpenGL ES 2 ühilduvustesti. ja on peaaegu valmis toetama OpenGL ES 3.0.

Samal ajal draiver, mis töötab kerneli tasemel on algselt välja töötatud Vulkan API tulevast tuge silmas pidadesja programmeerimisliides kasutajaruumiga suhtlemiseks on loodud uue Intel Xe draiveri UAPI-d silmas pidades.

Üle teadaolevad probleemid mainitakse järgmisi:

  • Olemasolev Rust-integratsioon ei toeta praegu abstraktsioonide ehitamist moodulitena, seega on Rust-abstraktsioonid saadaval ainult manustatud DRM-komponentide jaoks.
  • DRM tugineb suuresti kontrolleri objektide "alaklasside" mustrile ja see ei sobi Rustiga hästi.
  • Praegu rakendatakse ainult seda, mis on kontrolleri jaoks vajalik (pluss väike kogus
    ilmsed lisad, mille puhul on parem API terviklikkus mõistlik).
  • drm::mm nõuab hoopis abstraktsiooni sisse ehitatud mutexi
    delegeerida see kasutajale tavaliste Rooste muutlikkuse reeglitega.
    Seda seetõttu, et sõlmed saab igal ajal ja need toimingud välja jätta
    see peab olema sünkroonis.
  • Mesa poolel on teil praegu Galliumi draiver, mis on enamasti juba ülesvoolu (UAPI bitid enamasti puuduvad) ja
    läbib dEQP GLES2/EGL testid, enamik GLES3.0 läbib
    Pooleliolevate tööde ülesvoolu harud. See on kogukonna draiveri pöördprojekteerimine, seega mainitakse, et selles aspektis on veel palju teha.

lõpuks kui oled huvitatud sellest rohkem teada, saate üksikasju vaadata järgmine link.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.