В списъка за имейл разпространение на разработчиците на ядрото на Linux е предложена предварителна реализация на драйвера drm-asahi за GPU Apple AGX от серия G13 и G14, използвани в чиповете Apple M1 и M2. Драйверът е написан на Rust и допълнително включва набор от универсални обвивки над подсистемата DRM (Direct Rendering Manager), които могат да се използват за разработка на други графични драйвери на Rust. Публикуваният набор от пачове е предложен само за обсъждане от разработчиците на ядрото (RFC), но може да бъде приет в основния състав след завършване на рецензията и отстраняване на откритите недостатъци.
От декември драйверът е част от пакета на ядрото за дистрибуцията Asahi Linux и е тестван от потребителите на този проект. Драйверът може да бъде използван в дистрибуции на Linux за организиране на графическото окружение на устройства Apple с SoC M1, M1 Pro, M1 Max, M1 Ultra и M2. При разработването на драйвера е направена опит за повишаване на сигурността чрез минимизиране на грешките при работа с паметта в кода, който се изпълнява на страната на CPU, но е осигурена и частична защита от проблеми, възникващи при взаимодействие с фърмуера. В частност, драйверът предлага определени обвивки за небезопасни структури на споделена памет с сложни вериги на указатели, използвани във фърмуера за взаимодействие с драйвера.
Предложеният драйвер се използва във връзка с Mesa драйвера asahi, който осигурява поддръжка на OpenGL в потребителското пространство и успешно преминава тестове за съвместимост с OpenGL ES 2 и е почти готов за поддръжка на OpenGL ES 3.0. В същото време, работещият на ниво ядро драйвер първоначално се развива с оглед бъдещата поддръжка на API Vulkan, а софтуерният интерфейс за взаимодействие с потребителското пространство е проектиран с оглед на UAPI, предоставян от новия драйвер Intel Xe.
Източник: opennet.ru
