1 pontos por GN⁺ 2024-11-01 | 1 comentários | Compartilhar no WhatsApp

Atualização do driver de GPU da Apple M1/M2

  • O driver gráfico de kernel para GPUs Apple M1 e M2 foi escrito em Rust e vem chamando atenção por ter alcançado conformidade com vários padrões gráficos.
  • Na X.Org Developers Conference (XDC) 2024, Alyssa Rosenzweig apresentou uma atualização sobre o estado do driver e os tipos de jogos que ele consegue suportar.
  • Rosenzweig mantém desde 2019 a tradição de fazer sua apresentação na XDC vestida de bruxa.

Atualizações e tesselação

  • Na XDC do ano passado, foi informado que o driver havia alcançado conformidade com OpenGL ES 3.1.
  • Agora, o driver alcançou conformidade com OpenGL 4.6, e a discussão segue para os shaders de tesselação.
  • O tessellator de hardware da GPU da Apple não tem recursos suficientes para implementar os padrões OpenGL, Vulkan e Direct3D, o que dificulta seu uso.
  • O driver implementa tesselação por software, convertendo e utilizando o código do tessellator de referência da Microsoft para OpenCL C.

Vulkan e jogos

  • O driver Honeykrisp para GPU M1/M2 alcançou conformidade com Vulkan 1.3.
  • Para compatibilidade com DirectX, Windows e CPUs x86, ele usa o driver DXVK e o Wine para fazer a conversão para Vulkan.
  • Usa o FEX-Emu para conversão de x86 para Arm64 e recorre a uma máquina virtual para resolver a diferença no tamanho de página.

Desempenho e execução de jogos

  • O driver consegue rodar vários jogos, e o desempenho, embora um pouco inferior ao da aceleração por hardware, está em um nível prático.
  • Jogos mais pesados exigem 16 GB ou mais de RAM, enquanto alguns títulos também podem rodar em sistemas com 8 GB.
  • O suporte a ray tracing tem baixa prioridade no momento, e há planos de começar o trabalho para a GPU M3.

Resumo do GN⁺

  • O driver de GPU da Apple M1/M2, escrito em Rust, oferece alta estabilidade e bom desempenho.
  • O driver é compatível com vários padrões gráficos, e a implementação de tesselação usando OpenCL é especialmente interessante.
  • Graças à compatibilidade com Vulkan e DirectX, ele consegue rodar diversos jogos, e o uso de máquina virtual para resolver o problema de tamanho de página é uma abordagem criativa.
  • Este artigo é útil para entender os desafios e as soluções no desenvolvimento de drivers de GPU modernos, e projetos com funções semelhantes como DXVK e Wine são recomendados.

1 comentários

 
GN⁺ 2024-11-01
Opiniões no Hacker News
  • Há comentários enfatizando que ela é uma maga
  • Há comentários expressando surpresa com quantas partes faltam no hardware e com o quanto de emulação é usado
  • Há comentários dizendo que foram treinados a esperar artigos como "descontinuação do suporte e aquisição"
  • Há comentários se perguntando se o M3/M4 precisará de um driver completamente diferente
  • Há comentários se perguntando se é antiético compartilhar links /SubscriberLink/
  • Há comentários dizendo que seria divertido começar em francês, além de acharem tudo realmente impressionante
    • Há comentários dizendo que o arquivo tessellator.cl é o arquivo mais confuso de toda a carreira deles
    • Há comentários expressando surpresa ao saber que a apresentadora tem 23 anos, e dizendo que a confusão na carreira não diminui com o tempo
    • Há comentários dizendo que o trabalho dela é muito impressionante e que vale prestar atenção quando ela diz que 2.000 linhas de código C++ são crípticas
  • Há comentários dizendo que o trabalho de Alyssa R e Asahi Lina é excelente
    • Há comentários dizendo que há muitas partes difíceis de entender se você não tem familiaridade com código de driver
    • Há comentários dizendo que gostariam que fosse mais fácil escrever esse tipo de coisa, já que trabalho com hardware é muito específico
    • Há comentários dizendo que gostam da diversão no estilo antigo, como a roupa de bruxa
  • Há comentários dizendo que Alyssa é uma pessoa incrível, e que se lembram do primeiro artigo sobre ela começando a trabalhar com GPU aos 17 anos
    • Há comentários dizendo que é impressionante que exista alguém capaz de fazer o que ela fez
  • Há comentários procurando um link sobre o fato de o driver ter sido escrito em Rust