Dissecting the Apple M1 GPU, the end
В декабре 2020-го Хектор Мартин запустил Asahi Linux, а я, работая над Panfrost, лишь хотел подсказать. В итоге купил Mac mini и начал реверсить GPU. Через пару недель нарисовал треугольник, потом — компилятор шейдеров, а после сессии за несколько дней поднял OpenGL-драйвер.
Год улучшал драйвер, пока игры не пошли под macOS. Параллельно Asahi Lina писала kernel-драйвер; в декабре 2022-го у нас впервые заработала графика в Linux.
В 2023-м, заканчивая универ, я решил:
- довести M1-драйвер до ума;
- сделать полноценный OpenGL 4.6 и Vulkan;
- запустить Proton-игры.
Через месяц после выпуска — OpenGL 3.1, затем ES 3.1. Добавил эмуляцию geometry/tessellation, в январе 2024-го сдал OpenGL 4.6. Vulkan 1.3 прошёл за пару недель, 1.4 вышел в день публикации спецификации. Karol Herbst добавил OpenCL 3.0. Подключил sparse-текстуры — заработал Direct3D 12 через Proton.
Цели выполнены: драйверы в Mesa, игры идут, миф о несовместимости Vulkan с Apple развеян.