Открытие Apple Video Decoder (AVD) для Linux
Разработчики проекта Asahi Linux, ведущие обратную разработку архитектуры Apple Silicon, опубликовали в списке рассылки Linux Kernel Mailing List (LKML) набор из 14 патчей. Этот код внедряет драйвер AVD (Apple Video Decoder) в подсистему мультимедиа ядра Linux. Главная цель — обеспечить аппаратное ускорение воспроизведения видео на Mac с процессорами M1, M2 и M3, что ранее было возможно только через программные эмуляторы, нагружающие CPU.
Поддерживаемые кодеки и архитектура
Реализованный драйвер использует стандартный API Video 4 Linux 2 (V4L2) M2M stateless decoder. Это позволяет приложениям (например, VLC, MPV или браузерам) использовать GPU/специализированные блоки для декодирования без лишних накладных расходов. Поддерживаемые форматы включают:
- H.264 и H.265 (HEVC) — базовая поддержка для всех чипов M1-M3.
- VP9 — поддержка для M1-M3.
- AV1 — добавлена для чипов M3 и новее.
Разработчики ожидают, что в будущем драйвер будет расширен для поддержки архитектур M4, M5, M6 и Neo. Уже ведется работа по обратной разработке прошивок для нового оборудования.
Технические особенности реализации
Архитектура AVD отличается от стандартных видеодекодеров. Вместо раздельных регистров для каждого параметра, управление осуществляется через один единый регистр. Это требует строгого порядка записей и синхронизации скорости передачи данных со скоростью обработки «железом».
Для решения этой проблемы драйвер использует механизм «сегментов» (segments), где инструкции накапливаются в списке, а общая функция отправки следит за тем, чтобы не перегружать аппаратную часть. Также в блоке присутствует сопроцессор Cortex-M3, который принимает необработанный код. Сейчас он используется только для конфигурации и передачи прерываний (IRQ) основному процессору, но в перспективе это позволит снизить энергопотребление и ускорить декодирование.
Значение для экосистемы
Этот шаг знаменует собой важный этап в интеграции Apple Silicon в открытый мир Linux. До сих пор пользователи Linux на Mac были вынуждены полагаться на кастомные сборки ядра или программное декодирование. Включение AVD в основное дерево ядра (mainline) позволит всем дистрибутивам Linux получить нативную поддержку видео на Apple Hardware «из коробки» после обновления системы.
Источник: Phoronix ↗
