У 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
