Asahi, en öppen drivrutin för Apple AGX GPU:er, ger stöd för OpenGL 4.6 och OpenGL ES 3.2 för Apple M1 och M2 chips. Det är anmärkningsvärt att de inbyggda grafikdrivrutinerna för Apples M1-chips endast implementerar OpenGL 4.1-specifikationen, och stöd för OpenGL 4.6 var det första som dök upp i en öppen drivrutin. Färdiga drivrutinspaket ingår redan i Fedora-förråden och är tillgängliga för användning i en specialiserad version av Fedora Asahi Remix 39, designad för installation på system med Apple ARM-chips.
Dessutom har Khronos Consortium, ett konsortium som utvecklar grafikstandarder, erkänt den öppna Asahi-drivrutinen för AGX GPU, som ingår i Apple M1- och M2-chipsen, som helt kompatibel med OpenGL 4.6- och OpenGL ES 3.2-specifikationerna. Drivrutinen klarade alla tester i Kronos Conformance Test Suite (CTS) och har inkluderats i listan över certifierade drivrutiner. Testet utfördes på Apple M1-, M1 Pro/Max/Ultra-, M2- och M2 Pro/Max-enheter som kör Asahi-distributionen. Linux Fedora Remix, Mesa 24.0.0 och X.Org X Server (X11_GLX). Apples proprietära drivrutiner för M1- och M2-kretsarna finns ännu inte med i listan över Khronos-certifierade drivrutiner. Att erhålla certifiering gör det möjligt för Khronos att officiellt deklarera kompatibilitet med grafikstandarder och använda tillhörande Khronos-varumärken.
M1 GPU saknar vissa hårdvarufunktioner som krävs för att implementera OpenGL ES 3.2 och OpenGL 4.2, så sådan saknad funktionalitet implementerades baserat på befintliga funktioner. Till exempel implementeras geometriskuggningar, tessellation och transformeringsfeedback med beräkningsskuggningar, uttagsavstånd implementeras genom interpolering och klippkontroll implementeras genom vertex shader-epilogen. I framtiden kommer utvecklingen av öppna drivrutiner för Apple AGX GPU att fokusera på att ge stöd för Vulkan grafik API, vars implementering är planerad att använda en del av den redan testade standardkoden som används i drivrutiner för OpenGL.
Låt oss påminna er om att två drivrutiner utvecklas för Apple M1- och M2-grafikchipsen som fungerar tillsammans: DRM-drivrutinen (Direct Rendering Manager) drm-asahi för kärnan. Linux, skriven i Rust, och asahi-drivrutinen för Mesa, skriven i C. Drivrutinen på kärnnivå utvecklas från grunden med framtida Vulkan API-stöd i åtanke, medan användarutrymmes-API:et är utformat med UAPI:n som tillhandahålls av den nya Intel Xe-drivrutinen i åtanke. Eftersom Apple M1/M2-chipsen använder sin egen GPU, som kör proprietär firmware och använder ganska komplexa delade datastrukturer, utvecklas de oberoende drivrutinerna genom reverse engineering av drivrutinerna från macOS.
Källa: opennet.ru
