De foreslår implementering af en GPU-driver skrevet i Rust til Apple AGX G13 og G14

Linux Apple Rust

Dette er en ret omfattende driver til Apple AGX G13- og G14-seriens GPU'er.
Dagens controller er kompatibel med SoC'er

Nyheden blev for nylig frigivet det en foreløbig implementering af drm-asahi-driveren er blevet foreslået til serie GPU'er Apple AGX G13 og G14 brugt i Apple M1 og M2 chips på mailinglisten for Linux-kerneudviklere.

Controlleren er skrevet i Rust plus, inkluderer et sæt universelle links om DRM-undersystemet (Direct Rendering Manager), der kan bruges til at udvikle andre grafikdrivere i Rust.

Det frigivne patchsæt indtil nu er kun blevet foreslået til drøftelse af kerneudviklerne (RFC), men kan blive accepteret i kerneteamet efter gennemgangen er afsluttet og identificerede mangler er rettet.

Dette er min første version af Rustabstraktionerne til DRM delsystem. Omfatter selve abstraktionerne, nogle mindre forudsætningsændringer på C-siden samt drm-asahi GPU-driveren (til reference om, hvordan abstraktioner bruges, men ikke nødvendigvis beregnet til at lande sammen).

Disse plastre påføres i toppen af ​​træet i [1], som er baseret på 6.3-rc1 med en masse abstraktions-/Rust-support-commits tilføjet over. De fleste af disse er ikke forudsætninger for DRM-abstraktioner. sig selv, men kun fra chaufføren.

Siden december er controlleren inkluderet i pakken med kernen til Asahi Linux-distributionen og er blevet testet af brugerne af dette projekt.

Driveren kan bruges på Linux-distributioner til organisere det grafiske miljø i dApple-enheder med SoC M1, M1 Pro, M1 Max, M1 Ultra og M2. Ved udvikling af driveren blev der forsøgt ikke kun at øge sikkerheden ved at minimere fejl ved arbejde med hukommelse i kode udført på CPU-siden, men også delvist at beskytte mod problemer, der opstår ved interaktion med firmware.

Især driveren giver visse bindinger til delte hukommelsesstrukturer usikker med komplekse strenge af pointere, der bruges i firmwaren til at interagere med controlleren. Den foreslåede driver bruges sammen med asahi Mesa-driveren, som giver OpenGL-understøttelse af brugerpladsen og består OpenGL ES 2-kompatibilitetstest. og er næsten klar til at understøtte OpenGL ES 3.0.

Samtidig driveren, der fungerer på kerneniveau er oprindeligt udviklet med fremtidig understøttelse af Vulkan API i tankerne, og programmeringsgrænsefladen til at interagere med brugerområdet er designet med UAPI'en fra den nye Intel Xe-driver i tankerne.

Over kendte problemer følgende er nævnt:

  • Den eksisterende Rust-integration understøtter i øjeblikket ikke bygningsabstraktioner som moduler, så Rustabstraktioner er kun tilgængelige for indlejrede DRM-komponenter.
  • DRM er stærkt afhængig af "subclassing"-mønsteret for controller-objekter, og dette passer ikke godt med Rust.
  • I øjeblikket implementeres kun det, der er nødvendigt for controlleren (plus en lille mængde
    indlysende ekstramateriale, hvor bedre API-integritet giver mening).
  • drm::mm ender med at kræve en mutex indbygget i abstraktionen i stedet
    at delegere det til brugeren med de sædvanlige Rust-mutabilitetsregler.
    Dette skyldes, at noder kan droppes til enhver tid og disse operationer
    det skal være synkroniseret.
  • På Mesa-siden har du i øjeblikket Gallium-driveren, som for det meste allerede er opstrøms (UAPI-bits mangler for det meste) og
    består dEQP GLES2/EGL-testene, hvor det meste af GLES3.0 består
    Opstrøms grene af igangværende arbejde. Dette er en community driver reverse engineering, så det nævnes, at der stadig er meget at gøre i dette aspekt.

endelig hvis du er det interesseret i at vide mere om det, kan du tjekke detaljerne i følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.