Asahi, en åben driver til Apple AGX GPU'er, understøtter OpenGL 4.6 og OpenGL ES 3.2 til Apple M1 og M2 chips. Det er bemærkelsesværdigt, at de native grafikdrivere til Apples M1-chips kun implementerer OpenGL 4.1-specifikationen, og understøttelse af OpenGL 4.6 var den første, der dukkede op i en åben driver. Færdiglavede driverpakker er allerede inkluderet i Fedora-lagrene og er tilgængelige til brug i en specialiseret opbygning af Fedora Asahi Remix 39, designet til installation på systemer med Apple ARM-chips.
Derudover har Khronos Consortium, et konsortium der udvikler grafikstandarder, anerkendt den åbne Asahi-driver til AGX GPU'en, der er inkluderet i Apple M1- og M2-chipsene, som fuldt kompatibel med OpenGL 4.6- og OpenGL ES 3.2-specifikationerne. Driveren har bestået alle test i Kronos Conformance Test Suite (CTS) og er blevet inkluderet på listen over certificerede drivere. Testen blev udført på Apple M1-, M1 Pro/Max/Ultra-, M2- og M2 Pro/Max-enheder, der kører Asahi-distributionen. Linux Fedora Remix, Mesa 24.0.0 og X.Org X Server (X11_GLX). Apples proprietære drivere til M1- og M2-chipsene er endnu ikke inkluderet på listen over Khronos-certificerede drivere. Opnåelse af certificering giver Khronos mulighed for officielt at erklære kompatibilitet med grafikstandarder og bruge tilhørende Khronos-varemærker.
M1 GPU'en mangler nogle hardwarefunktioner, der kræves for at implementere OpenGL ES 3.2 og OpenGL 4.2, så en sådan manglende funktionalitet blev implementeret baseret på eksisterende funktioner. For eksempel implementeres geometrishaders, tessellation og transformationsfeedback ved hjælp af compute shaders, cull distance implementeres gennem interpolation, og clip control er implementeret gennem vertex shader epilogen. I fremtiden vil udviklingen af åbne drivere til Apple AGX GPU fokusere på at yde support til Vulkan grafik API, hvis implementering er planlagt til at bruge en del af den allerede testede standardkode, der bruges i drivere til OpenGL.
Lad os minde dig om, at der til Apple M1- og M2 GPU-chipsene udvikles to drivere, der fungerer sammen: DRM-driveren (Direct Rendering Manager) drm-asahi til kernen. Linux, skrevet i Rust, og asahi-driveren til Mesa, skrevet i C. Driveren på kerneniveau udvikles fra bunden med fremtidig Vulkan API-understøttelse i tankerne, mens brugerplads-API'en er designet med den UAPI, der leveres af den nye Intel Xe-driver, i tankerne. Da Apple M1/M2-chipsene bruger deres egen GPU, som kører proprietær firmware og udnytter ret komplekse delte datastrukturer, er de uafhængige drivere udviklet ved reverse engineering af driverne fra macOS.
Kilde: opennet.ru
