Desde que a Apple introduziu o M1 há dois anos como seu Apple Silicon interno para laptops e desktops com um poderoso processador AArch64 e processador gráfico personalizado, tem havido muita especulação sobre se os gráficos Apple M1 (e agora M2) são um-sheet Apple design ou derivado de gráficos Imagination PowerVR que a Apple estava usando com SoCs anteriores. Houve algumas semelhanças levantadas antes com a equipe do Asahi Linux trabalhando para habilitar o Apple M1/M2 no Linux, enquanto a atividade mais recente do driver Mesa aponta para bits mais comuns entre o hardware gráfico PowerVR e os gráficos Apple AGX.
Graças ao trabalho da equipe Asahi Linux e seu trabalho de engenharia reversa do suporte da Apple Silicon para Linux, incluindo suas ambições em torno do suporte de driver de GPU de código aberto, continua a haver sinais de que os gráficos da Apple carregam alguma linhagem de volta para PowerVR.
O que chamou minha atenção ontem foi esta solicitação de mesclagem do Mesa: asahi: Rewrite state emit code using informações do driver Mesa PowerVR. Alyssa Rosenzweig, que liderou o trabalho no suporte ao driver Mesa Gallium3D/OpenGL de código aberto da Apple, explicou nesse MR:
Olhando para as definições de PPP do PowerVR na árvore do Mesa (src/imagination/csbgen/), descobrimos que as estruturas de dados”marcadas”do AGX são, na verdade, sequências de itens de estado prefixados por um cabeçalho especificando qual estado segue. Em vez de codificar as sequências nas quais o driver da Apple escolhe agrupar o estado, precisamos que o XML seja flexível o suficiente para codificar ou decodificar qualquer combinação válida de estado. Isso significa retrabalhar o XML. Ao fazer isso, encontramos vários campos que são idênticos entre RGX e AGX e corrigimos os nomes (por exemplo, o ponto flutuante W Clamp).
Os nomes são do código PowerVR no Mesa, quando necessário.
…
Esse insight agora é possível desde que no início deste ano a Imagination publicou um driver PowerVR Vulkan de código aberto que foi incorporado ao Mesa principal. (A Imagination também está trabalhando em um driver gráfico de kernel DRM de código aberto também para o PowerVR Rogue.) Foi olhando para o código do PowerVR Mesa que as últimas semelhanças com o hardware gráfico da Apple foram descobertas. Concedido, é de escopo limitado e ainda não está claro até que ponto, em última análise, os gráficos Apple M1/M2 são derivados do PowerVR IP.
Linux (Asahi) atualmente em execução no Apple M1/M2 significa rasterização de software baseado em CPU LLVMpipe até que o esforço do driver GPU de código aberto esteja mais avançado tanto para o código Mesa quanto para o driver Direct Rendering Manager do kernel em desenvolvimento.
O trabalho de engenharia e escrita do driver gráfico de código aberto da Apple continua em andamento. Espera-se que o objetivo expresso mais recente seja ver o suporte ao OpenGL 2.1 até o final de 2022, embora possa levar mais tempo do que isso antes que o driver do kernel DRM seja upstream no kernel principal.