Viņi ierosina ieviest rust valodā rakstītu GPU draiveri Apple AGX G13 un G14.

Linux Apple Rust

Šis ir diezgan visaptverošs draiveris Apple AGX G13 un G14 sērijas GPU.
Mūsdienu kontrolieris ir saderīgs ar SoC

Nesen tika izlaistas ziņas, ka ir ierosināta iepriekšēja drm-asahi draivera ieviešana sērijas GPU Apple AGX G13 un G14, ko izmanto Apple M1 un M2 mikroshēmās Linux kodola izstrādātāju adresātu sarakstā.

Kontrolieris ir rakstīts Rust plus, ietver universālu saišu kopu par DRM apakšsistēmu (Direct Rendering Manager), ko var izmantot, lai izstrādātu citus grafikas draiverus programmā Rust.

Atbrīvotais ielāpu komplekts līdz šim brīdim ir ierosināts tikai apspriešanai galvenie izstrādātāji (RFC), bet var tikt pieņemti galvenajā komandā pēc tam, kad pārskatīšana ir pabeigta un konstatētie trūkumi ir novērsti.

Šī ir mana pirmā Rust abstrakciju versija DRM apakšsistēmu. Ietver pašas abstrakcijas, dažas nelielas priekšnosacījumu izmaiņas C pusē, kā arī drm-asahi GPU draiveris (atsaucei par to, kā tiek izmantotas abstrakcijas, bet ne obligāti paredzēts nolaisties kopā).

Šie ielāpi tiek uzlikti koka augšdaļā [1], kura pamatā ir 6.3-rc1 ar daudzām abstrakcijas/rūsas atbalsta saistībām, kas pievienotas virs. Lielākā daļa no tiem nav priekšnoteikumi DRM abstrakcijām. paši, bet tikai no vadītāja.

Kopš decembra kontrolieris ir iekļauts iepakojums ar kodolu Asahi Linux izplatīšanai un to ir pārbaudījuši šī projekta lietotāji.

Draiveri var izmantot Linux izplatījumos, lai organizēt grafisko vidi dApple ierīces ar SoC M1, M1 Pro, M1 Max, M1 Ultra un M2. Izstrādājot draiveri, tika mēģināts ne tikai palielināt drošību, samazinot kļūdas, strādājot ar atmiņu kodā, kas izpildīts CPU pusē, bet arī daļēji aizsargāt pret problēmām, kas rodas, mijiedarbojoties ar programmaparatūru.

Jo īpaši draiveris nodrošina noteiktus saistījumus koplietotās atmiņas struktūrām nedrošs ar sarežģītām rādītāju virknēm, kas tiek izmantotas programmaparatūrā, lai mijiedarbotos ar kontrolieri. Piedāvātais draiveris tiek izmantots kopā ar asahi Mesa draiveri, kas nodrošina lietotāja telpas OpenGL atbalstu un iztur OpenGL ES 2 saderības pārbaudi. un ir gandrīz gatavs atbalstīt OpenGL ES 3.0.

Tajā pašā laikā draiveris, kas darbojas kodola līmenī sākotnēji tika izstrādāts, paturot prātā turpmāko atbalstu Vulkan API, un programmēšanas interfeiss mijiedarbībai ar lietotāja telpu ir izstrādāts, ņemot vērā UAPI, ko nodrošina jaunais Intel Xe draiveris.

Pāri zināmie jautājumi tiek minēti šādi:

  • Esošā Rust integrācija pašlaik neatbalsta ēku abstrakcijas kā moduļus, tāpēc Rust abstrakcijas ir pieejamas tikai iegultiem DRM komponentiem.
  • DRM lielā mērā paļaujas uz kontroliera objektu "apakšklases" modeli, un tas neatbilst Rust.
  • Pašlaik tiek ieviests tikai tas, kas ir nepieciešams kontrolierim (plus neliels daudzums
    acīmredzamas ekstras, kur ir jēga labākai API integritātei).
  • drm::mm tā vietā ir nepieciešams abstrakcijā iebūvēts mutex
    lai deleģētu to lietotājam ar parastajiem Rust mainīguma noteikumiem.
    Tas ir tāpēc, ka mezglus var atmest jebkurā laikā un šīs darbības
    tam ir jābūt sinhronizētam.
  • Mesa pusē jums pašlaik ir Gallium draiveris, kas lielākoties jau ir augšpusē (lielākoties trūkst UAPI bitu) un
    iztur dEQP GLES2/EGL testus, un lielākā daļa GLES3.0 iztur
    Augšupējās nepabeigtā darba nozares. Šī ir kopienas draivera reversā inženierija, tāpēc tiek minēts, ka šajā aspektā vēl ir daudz darāmā.

beidzot, ja esi interesē uzzināt vairāk par to, sīkāku informāciju varat pārbaudīt sadaļā šo saiti.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.