Desde que Apple presentó el M1 hace dos años como su Apple Silicon interno para computadoras portátiles y de escritorio con un potente procesador AArch64 y un procesador de gráficos de diseño personalizado, ha habido mucha especulación sobre si los gráficos de Apple M1 (y ahora M2) son una solución limpia.-hoja de diseño de Apple o derivada de los gráficos Imagination PowerVR que Apple había estado usando con SoC anteriores. Ha habido algunas similitudes mencionadas anteriormente con el equipo de Asahi Linux trabajando para habilitar Apple M1/M2 bajo Linux, mientras que la última actividad del controlador Mesa apunta a bits más comunes entre el hardware de gráficos PowerVR y los gráficos Apple AGX.
Gracias al trabajo del equipo de Asahi Linux y su trabajo de ingeniería inversa de la compatibilidad de Apple Silicon con Linux, incluidas sus ambiciones en torno a la compatibilidad con controladores de GPU de código abierto, sigue habiendo señales de que los gráficos de Apple tienen algo de linaje. a PowerVR.
Ayer me llamó la atención esta solicitud de combinación de Mesa: asahi: Reescribir el código de emisión de estado usando información del controlador Mesa PowerVR. Alyssa Rosenzweig, que ha liderado el trabajo sobre la compatibilidad con el controlador Mesa Gallium3D/OpenGL de código abierto de Apple, explicó en ese MR:
Mirando las definiciones de PPP de PowerVR en el árbol de Mesa (src/imagination/csbgen/), encontramos que las estructuras de datos”etiquetadas”de AGX son en realidad secuencias de elementos de estado precedidos por un encabezado que especifica qué estado sigue. En lugar de codificar las secuencias en las que el controlador de Apple elige agrupar el estado, necesitamos que el XML sea lo suficientemente flexible para codificar o decodificar cualquier combinación válida de estado. Eso significa volver a trabajar el XML. Al hacerlo, encontramos una serie de campos que son idénticos entre RGX y AGX, y fijamos los nombres mientras lo hacemos (por ejemplo, el punto flotante W Clamp).
Los nombres son del código de PowerVR en Mesa donde sea sensato.
…
Esta idea ahora es posible ya que a principios de este año Imagination publicó un controlador PowerVR Vulkan de código abierto que se fusionó con la línea principal Mesa. (Imagination también ha estado trabajando en un controlador de gráficos de kernel DRM de código abierto para PowerVR Rogue). Al observar el código de PowerVR Mesa, se descubrieron las últimas similitudes con el hardware de gráficos de Apple. Por supuesto, tiene un alcance limitado y aún no está claro en qué medida, en última instancia, los gráficos Apple M1/M2 se derivan de PowerVR IP.
Actualmente ejecutar (Asahi) Linux en Apple M1/M2 significa rasterización de software basada en CPU LLVMpipe hasta que el esfuerzo del controlador GPU de código abierto esté más avanzado tanto para el código Mesa como para el controlador Direct Rendering Manager del kernel en desarrollo.
El trabajo de ingeniería y escritura del controlador de gráficos de código abierto de Apple sigue en curso. El último objetivo expresado es, con suerte, ver la compatibilidad con OpenGL 2.1 para fines de 2022, aunque puede llevar más tiempo antes de que el controlador del kernel DRM se cargue en el kernel de la línea principal.