HeadlinesBriefing favicon HeadlinesBriefing.com

Драйвер GPU для M4 Mac за месяц

Hacker News •
×

Niklas и я создали полностью совместимый с OpenGL ES 3.0 драйвер GPU для M4 Mac Mini и MacBook Neo примерно за месяц, процесс, который обычно занимает годы. Драйвер запускает Chrome и Firefox с WebGL и Minecraft на 200 кадрах в секунду. Это включало обратную разработку ABI прошивки GPU AGX и компонентов пользовательского пространства методом чистого помещения.

Ранее я создал гипервизор для обратной разработки macOS. Наша цель состояла в реализации соответствующих стандартам драйверов OpenGL (и вскоре Vulkan). Мы провели обратную разработку пользовательского пространства M4, A18 Pro и M5, создали собственный компилятор IR/шейдеров, построитель потока команд и полноценный драйвер ядра Linux. Мы использовали только аппаратные трассировки и собственные шейдеры, рассматривая бинарные файлы Apple как непрозрачные.

Драйвер ядра взаимодействует с прошивкой GPU, работающей на RTKit, а не напрямую с оборудованием. ABI прошивки был самой раздражающей частью, с общими структурами, чередующими поля прошивки и хоста. Asahi Lina разобралась с этим для M1/M2 в течение изнурительных 12-часовых дней.

Код не готов для конечных пользователей, но мы стремимся вскоре предоставить его им.

Ключевые сущности: Компании: Apple | Люди: Cody Ho, Niklas, Asahi Lina