Asahi, un driver deschis pentru GPU-urile Apple AGX, oferă suport pentru OpenGL 4.6 și OpenGL ES 3.2 pentru cipurile Apple M1 și M2. Este de remarcat faptul că driverele grafice native pentru cipurile M1 Apple implementează doar specificația OpenGL 4.1, iar suportul pentru OpenGL 4.6 a fost primul care a apărut într-un driver deschis. Pachetele de drivere gata făcute sunt deja incluse în depozitele Fedora și sunt disponibile pentru utilizare într-o versiune specializată a Fedora Asahi Remix 39, concepută pentru instalare pe sisteme cu cipuri Apple ARM.
În plus, Consorțiul Khronos, un consorțiu care dezvoltă standarde grafice, a recunoscut driverul deschis Asahi pentru GPU-ul AGX, inclus în cipurile Apple M1 și M2, ca fiind pe deplin compatibil cu specificațiile OpenGL 4.6 și OpenGL ES 3.2. Driverul a trecut cu succes toate testele din cadrul Kronos Conformance Test Suite (CTS) și a fost inclus în lista driverelor certificate. Testul a fost efectuat pe dispozitive Apple M1, M1 Pro/Max/Ultra, M2 și M2 Pro/Max care rulează distribuția Asahi. Linux Fedora Remix, Mesa 24.0.0 și X.Org X Server (X11_GLX). Driverele proprietare Apple pentru cipurile M1 și M2 nu sunt încă incluse în lista driverelor certificate Khronos. Obținerea certificării permite Khronos să declare oficial compatibilitatea cu standardele grafice și să utilizeze mărcile comerciale asociate Khronos.
GPU-ului M1 îi lipsesc unele capacități hardware necesare pentru implementarea OpenGL ES 3.2 și OpenGL 4.2, astfel încât această funcționalitate lipsă a fost implementată pe baza funcțiilor existente. De exemplu, umbrirea geometriei, teselarea și feedback-ul de transformare sunt implementate folosind shadere de calcul, distanța de eliminare este implementată prin interpolare și controlul clipului este implementat prin epilogul vertex shader. În viitor, dezvoltarea de drivere deschise pentru GPU-ul Apple AGX se va concentra pe furnizarea de suport pentru API-ul grafic Vulkan, a cărui implementare este planificată să utilizeze o parte din codul standard deja testat, utilizat în driverele pentru OpenGL.
Vă reamintim că pentru cipurile GPU Apple M1 și M2 sunt în curs de dezvoltare două drivere care funcționează împreună: driverul DRM (Direct Rendering Manager) drm-asahi pentru kernel Linux, scris în Rust, și driverul asahi pentru Mesa, scris în C. Driverul la nivel de kernel este dezvoltat de la zero, având în vedere suportul viitor pentru API-ul Vulkan, în timp ce API-ul din spațiul utilizatorului este proiectat având în vedere UAPI-ul furnizat de noul driver Intel Xe. Deoarece cipurile Apple M1/M2 utilizează propriul GPU, care rulează firmware proprietar și utilizează structuri de date partajate destul de complexe, driverele independente sunt dezvoltate prin inginerie inversă a driverelor din macOS.
Sursa: opennet.ru
