BookinglyTech News
Software

El driver de decodificación de vídeo de Apple Silicon sale a revisión para el kernel Linux

Sofus Forstreuter ha enviado a la lista del kernel 14 parches con el driver AVD, que habilita decodificación de vídeo por hardware en los M1, M2 y M3 de Apple.

2 min de lecturaPhoronix0 vistas

El proyecto Asahi Linux sigue empujando código hacia el kernel principal y ahora le toca al vídeo. Sofus Forstreuter ha publicado en la lista de correo del kernel una serie de 14 parches que introducen el driver AVD, el encargado de la decodificación de vídeo acelerada por hardware en los SoC Apple M1, M2 y M3. El envío es una petición de revisión, no una fusión: si pasa el filtro, entrará por el árbol del subsistema de medios en alguna versión futura.

El AVD soporta H.264, H.265 y VP9. En los M3 y posteriores se añade AV1. La intención es extenderlo también a los M4, M5, M6 y a los SoC Neo, y parte del trabajo de firmware para el hardware más nuevo ya está en marcha. El firmware necesario lo aloja Asahi Linux en este repositorio.

Detrás hay varios años de ingeniería inversa, porque Apple no documenta el bloque. El driver implementa la API M2M stateless de V4L2, la vía habitual para decodificadores que no mantienen estado entre fotogramas.

Un bloque con rarezas propias

El diseño del decodificador se sale de lo común, y Forstreuter lo explica en la carta de presentación de la serie de parches. En lugar de un registro por parámetro, el AVD se programa a través de un único registro. Eso convierte el orden de las escrituras en algo crítico, y obliga además a no escribir más rápido de lo que el hardware puede procesar. La solución pasa por volcar las instrucciones a una lista de segmentos y enviarlas con una función compartida que espera cada vez que el bloque se queda atrás.

El bloque incluye un coprocesador Cortex-M3 que acepta código sin firmar. No es estrictamente necesario, pero es la única forma de recibir las interrupciones de estado de decodificación. De momento se limita a la configuración de los ajustes de decodificación y reenvía todas las IRQ al AP. En el futuro asumirá también el envío de instrucciones, lo que según las primeras pruebas reduciría el consumo e incluso daría tiempos de decodificación algo mejores.

Qué cambia para quien administra Macs

Hoy, quien quiera reproducción de vídeo acelerada en Apple Silicon bajo Linux depende del árbol de Asahi. Con el driver en revisión upstream, la decodificación deja de ser parche de distribución y pasa a ser candidata a viajar en el kernel que cualquiera compila o instala. Eso simplifica el mantenimiento de flotas con estos equipos y reduce la dependencia de un parche fuera de árbol que hay que reaplicar en cada salto de versión.

Queda por ver la acogida en la lista. Una serie de 14 parches con ingeniería inversa detrás suele necesitar varias rondas antes de entrar, y el soporte de los SoC más nuevos ni siquiera está empezado. El punto de partida, en cualquier caso, ya está sobre la mesa.