Ei propun implementarea unui driver GPU scris în Rust, pentru Apple AGX G13 și G14

Linux Apple Rust

Acesta este un driver destul de cuprinzător pentru GPU-urile din seriile Apple AGX G13 și G14.
Controlerul de astăzi este compatibil cu SoC-uri

Știrea a fost lansată recent că a fost propusă o implementare preliminară a driverului drm-asahi pentru GPU-uri în serie Apple AGX G13 și G14 utilizate în cipurile Apple M1 și M2 pe lista de corespondență a dezvoltatorilor de kernel Linux.

Controlerul este scris în Rust la care se adauga, include un set de legături universale despre subsistemul DRM (Direct Rendering Manager) care poate fi folosit pentru a dezvolta alte drivere grafice în Rust.

Setul de patch-uri lansat pana acum a fost propus doar pentru discuție de către dezvoltatorii de bază (RFC), dar poate fi acceptat în echipa de bază după ce revizuirea este finalizată și deficiențele identificate sunt remediate.

Aceasta este prima mea versiune a abstracțiilor Rust pentru DRM subsistem. Include abstracțiile în sine, unele minore modificările prealabile pe partea C, precum și driverul GPU drm-asahi (pentru referință despre modul în care sunt utilizate abstracțiile, dar nu neapărat destinat să aterizeze împreună).

Aceste petice sunt aplicate în vârful copacului în [1], care se bazează pe 6.3-rc1 cu o mulțime de comitete de suport pentru abstractizare/Rugină adăugate de mai sus. Cele mai multe dintre acestea nu sunt premise pentru abstracțiile DRM. ei înșiși, dar numai de la șofer.

Din decembrie, controlorul este inclus în pachetul cu nucleul pentru distribuția Asahi Linux și a fost testat de utilizatorii acestui proiect.

Driverul poate fi folosit pe distribuțiile Linux pentru organizează mediul grafic în dDispozitive Apple cu SoC M1, M1 Pro, M1 Max, M1 Ultra și M2. La dezvoltarea driverului, s-a încercat nu numai creșterea securității prin minimizarea erorilor atunci când lucrați cu memoria în cod executat pe partea CPU, ci și protejarea parțială împotriva problemelor care apar la interacțiunea cu firmware-ul.

În special driverul oferă anumite legături pentru structurile de memorie partajată nesigur cu șiruri complexe de pointeri utilizate în firmware pentru a interacționa cu controlerul. Driverul propus este utilizat împreună cu driverul asahi Mesa, care oferă suport OpenGL pentru spațiul utilizatorului și trece testul de compatibilitate OpenGL ES 2. și este aproape gata să accepte OpenGL ES 3.0.

În același timp, driverul care funcționează la nivel de kernel este dezvoltat inițial având în vedere suportul viitor pentru API-ul Vulkan, iar interfața de programare pentru interacțiunea cu spațiul utilizatorului este concepută având în vedere UAPI-ul furnizat de noul driver Intel Xe.

Peste probleme cunoscute sunt menționate următoarele:

  • Integrarea Rust existentă nu acceptă în prezent construirea de abstracții ca module, așa că abstracțiile Rust sunt disponibile numai pentru componentele DRM încorporate.
  • DRM se bazează în mare măsură pe modelul de „subclasare” pentru obiectele controlerului, iar acest lucru nu se potrivește cu Rust.
  • În prezent, este implementat doar ceea ce este necesar pentru controler (plus o cantitate mică de
    extrauri evidente în care o mai bună integritate API are sens).
  • drm::mm ajunge să necesite un mutex încorporat în abstracție
    pentru a delega asta utilizatorului cu regulile obișnuite de mutabilitate Rust.
    Acest lucru se datorează faptului că nodurile pot fi abandonate în orice moment și operațiunile respective
    trebuie să fie sincronizat.
  • Pe partea Mesa, aveți în prezent driverul Gallium, care este în mare parte deja în amonte (biții UAPI lipsesc în mare parte) și
    trece testele dEQP GLES2/EGL, majoritatea GLES3.0 trecând
    Ramuri de lucru în amonte. Acesta este un driver comunitar de inginerie inversă, așa că se menționează că mai sunt multe de făcut în acest aspect.

in sfarsit daca esti interesat să afle mai multe despre asta, puteți verifica detaliile în următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.