В списъка на разработчиците на ядрото на 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
