Π Asahi, ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Π΄Π»Ρ GPU Apple AGX, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.6 ΠΈ OpenGL ES 3.2 Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Apple M1 ΠΈ M2. ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π² ΡΠΎΠ΄Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² M1 ΠΎΡ Apple ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ OpenGL 4.1, Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.6 ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅. ΠΠΎΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΎΡΡΠ°Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Fedora ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ Fedora Asahi Remix 39, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ Ρ ARM-ΡΠΈΠΏΠ°ΠΌΠΈ Apple.
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ Khronos, Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΠΉΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ², ΠΏΡΠΈΠ·Π½Π°Π» ΠΏΠΎΠ»Π½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Asahi Π΄Π»Ρ GPU AGX, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΡΠΈΠΏΠ°Ρ Apple M1 ΠΈ M2, ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ OpenGL 4.6 ΠΈ OpenGL ES 3.2. ΠΡΠ°ΠΉΠ²Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ» Π²ΡΠ΅ ΡΠ΅ΡΡΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° CTS (Kronos Conformance Test Suite) ΠΈ Π²ΠΊΠ»ΡΡΡΠ½ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ². ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π±ΡΠ»Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Apple M1, M1 Pro/Max/Ultra, M2 ΠΈ M2 Pro/Max Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠΌ Asahi Linux Fedora Remix, Mesa 24.0.0 ΠΈ X.Org X Server (X11_GLX). ΠΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Apple Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² M1 ΠΈ M2 ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² Khronos Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ². ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ Π·Π°ΡΠ²Π»ΡΡΡ ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΡΠΎΡΠ³ΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΠΊΠΈ Khronos.
Π GPU ΡΠΈΠΏΠΎΠ² M1 ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ OpenGL ES 3.2 ΠΈ OpenGL 4.2, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° Π±Π°Π·Π΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΡ, ΡΠ΅ΡΡΠ΅Π»ΡΡΠΈΡ ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΠΈΠ· Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° (transform feedback) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ², ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (cull distance) — ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ, Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ (clip control) ΡΠ΅ΡΠ΅Π· ΡΠΏΠΈΠ»ΠΎΠ³ Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΊΡΡΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ GPU Apple AGX Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π½Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan, Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΡ ΡΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ Π΄Π»Ρ OpenGL.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π΄Π»Ρ GPU ΡΠΈΠΏΠΎΠ² Apple M1 ΠΈ M2 ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π΄Π²Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ
Π² ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠΈ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ: DRM-Π΄ΡΠ°ΠΉΠ²Π΅Ρ (Direct Rendering Manager) drm-asahi Π΄Π»Ρ ΡΠ΄ΡΠ° Linux, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust, ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅Ρ asahi Π΄Π»Ρ Mesa, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ. Π Π°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ° Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Ρ ΡΡΡΡΠΎΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ API Vulkan, Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ Ρ ΠΎΠ³Π»ΡΠ΄ΠΊΠΎΠΉ Π½Π° UAPI, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π½ΠΎΠ²ΡΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Intel Xe. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠΈΠΏΠ°Ρ
Apple M1/M2 ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ GPU, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ Π·Π°ΠΊΡΡΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈΠ· macOS.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru