OpenGL 4.6 conforme no M1

Desenvolvedores de código aberto conseguiram uma implementação totalmente conforme de OpenGL 4.6 na GPU M1 da Apple sob Linux, superando os drivers não conformes 4.1 da própria Apple e permitindo melhor compatibilidade com aplicações modernas de OpenGL como Blender e emuladores. Os comentaristas ponderam o que isso significa para o Apple Silicon como plataforma Linux, contrastando o desempenho e o design do Metal com a portabilidade do OpenGL e do Vulkan e observando lacunas restantes no suporte de hardware Linux e no gerenciamento de energia. A conversa se amplia para como APIs de baixo nível modernas, como Vulkan e Metal, se comparam ao OpenGL em usabilidade, desempenho e relevância de longo prazo, especialmente para desenvolvedores indie e motores de jogos multiplataforma.

Reação geral

  • Muitos leitores gostaram do texto, mas acharam os detalhes profundos sobre GPU/driver difíceis de acompanhar.
  • Vários expressam forte admiração pelo esforço de engenharia e pelo valor educativo da série de posts.

Portando para macOS / usando Metal

  • Alguns perguntam se um suporte semelhante ao OpenGL 4.6 poderia chegar ao macOS.
  • Obstáculos mencionados:
    • A falta da Apple de uma API estável e pública de kernel e as restrições a drivers de kernel de terceiros.
    • A necessidade de interagir, a partir do espaço do usuário, com o envio de comandos da GPU pela Apple e integrar com a composição do macOS.
  • Outros argumentam que, no macOS, uma camada de GL sobre Metal faz mais sentido do que um driver totalmente personalizado, mas questionam por que investir pesadamente em uma API “legada”.
  • Contraponto: muito software ainda depende de OpenGL; alguns veem uma obrigação moral da Apple de dar suporte adequado a ele.

Asahi Linux no Apple Silicon

  • A nova pilha OpenGL conforme é vista como um grande marco; alguns afirmam que o Apple Silicon agora é o “melhor hardware para Linux”.
  • Há resistência:
    • macOS/Metal ainda oferece melhor desempenho para cargas de trabalho específicas como Blender.
    • O Asahi ainda não está completo em termos de recursos: microfones, alguns recursos de economia de energia e decodificação de vídeo por hardware estão incompletos, embora o trabalho continue.
    • A adequação para uso diário é contestada: alguns dizem que “não está pronto”, enquanto outros relatam usá-lo em tempo integral com sucesso.

Abordagem técnica e desempenho

  • Principal conquista: atingir conformidade com OpenGL 4.6 em hardware que, nativamente, mapeia apenas aproximadamente para OpenGL ES 3.1.
  • Recursos ausentes (geometry shaders, tessellation, transform feedback etc.) são emulados por meio de shaders de computação e truques de shader.
  • Comentaristas comparam isso ao Zink (OpenGL sobre Vulkan) e se perguntam quão reutilizáveis são essas técnicas de “recursos sobre recursos”.
  • O impacto de desempenho em relação ao Metal é reconhecido como “depende” e não fica totalmente claro pelo tópico, embora alguns observem que até recursos “de hardware” muitas vezes são implementados em microcódigo, então o desempenho pode ser semelhante.

OpenGL vs Vulkan/Metal e design de API

  • Debate sobre por que mirar OpenGL primeiro em vez de Vulkan:
    • Pró-GL: caminho incremental mais fácil a partir do trabalho anterior, imediatamente útil para desktops/compositores, e os desenvolvedores já têm experiência com drivers de GL.
    • Pró-Vulkan: Vulkan é o alvo moderno e já possui camadas de GL, mas essas ainda exigem o mesmo trabalho de recursos por baixo.
  • Facilidade de uso de OpenGL vs Vulkan:
    • Muitos dizem que OpenGL é muito mais fácil para iniciantes e pequenos projetos/indies; o boilerplate e a sincronização explícita do Vulkan são intimidadoras.
    • Outros argumentam que muita “dor” do Vulkan é configuração única e pode ser encapsulada em bibliotecas; para programadores gráficos experientes, Vulkan é o preferido.
    • Alguns veem o Metal como mais limpo e fácil do que ambos nas plataformas Apple.

História e ecossistema

  • Discussão sobre como Quake e jogos relacionados ajudaram a empurrar o OpenGL além de CAD para o mainstream dos jogos de PC, contrapondo o crescimento do Direct3D.
  • Visões divergentes:
    • Alguns dizem que a evolução da API do Direct3D, as ferramentas e a cooperação com fabricantes de GPU acabaram “vencendo” no PC.
    • Outros destacam as tentativas passadas da Microsoft de marginalizar o OpenGL e observam que o aprisionamento do Direct3D ao Windows/Xbox impede que ele seja um verdadeiro padrão multiplataforma.

Futuro do OpenGL e dos gráficos multiplataforma

  • Consenso de que o OpenGL está, na prática, estagnado: 4.6 é a última versão, foi descontinuado nas plataformas Apple e cada vez mais é encapsulado sobre Vulkan/Direct3D em drivers.
  • Ainda assim, muitos continuam vendo o OpenGL como:
    • A API multiplataforma mais prática para escrever diretamente hoje.
    • Suficiente e mais simples para muitos casos de uso não AAA, mesmo sendo subótimo para desempenho de ponta.
  • Alguns esperam que APIs de nível mais alto, parecidas com OpenGL (por exemplo, sobre Vulkan ou por meio de projetos como wgpu ou Zink), continuem importantes para a acessibilidade.