Экспериментальный драйвер Nvidia добавил поддержку Metal в macOS

Разработчик под никнеймом NullMoth опубликовал экспериментальный драйвер для современных видеокарт Nvidia, предназначенный для macOS 15 Sequoia. Проект ориентирован на компьютеры Hackintosh и Mac на базе процессоров Intel. Исходный код и готовые сборки доступны в открытом репозитории на GitHub.
Драйвер поддерживает видеокарты на архитектуре Turing и более новых платформах. В список совместимых устройств входят модели GTX 16-й серии, RTX 20-й, 30-й, 40-й и 50-й серий, а также TITAN RTX и профессиональные Quadro/RTX. Автор лично проверил работу решения с RTX 5060. Пользователи подтвердили совместимость также с RTX 5070 и RTX 5080. Видеокарты на архитектуре Pascal и более старых платформах не поддерживаются.
Как устроена поддержка Metal
Для работы интерфейсов Metal поверх Vulkan автор разработал собственный плагин NVMTLDriver. Компонент metal2vulkan переводит шейдеры из промежуточного формата Apple AIR в SPIR-V. Затем Vulkan-драйвер NVK из состава Mesa 3D и компилятор NAK преобразуют их в машинный код для GPU Nvidia.
Благодаря этой схеме приложения воспринимают установленную видеокарту как обычное устройство Metal. На уровне ядра разработчик перенёс GPU-модули Nvidia из Linux в ядро macOS XNU. Эти компоненты отвечают за запуск прошивки GSP и управление функциями видеокарты. Дополнительные модули обеспечивают вывод изображения на мониторы и взаимодействие с WindowServer.
Ограничения проекта
Несмотря на заявленную совместимость, драйвер пока не готов для безусловного повседневного использования. В тестах с RTX 5060 и двумя мониторами корректно работали изменение частоты обновления и копирование буфера через Metal. Однако при смене режима одного из дисплеев второй экран мог погаснуть или начать мерцать.
Для установки NullMoth рекомендует специальное приложение, которое изменяет настройки загрузчика OpenCore, устанавливает драйвер и добавляет в загрузочное меню отдельный пункт для удаления. Проект распространяется под лицензией PolyForm Noncommercial, поэтому использовать его следует с учётом условий этой лицензии и экспериментального статуса разработки.


