O Chrome 113 ativa o WebGPU, uma API gráfica moderna e de baixo custo para a Web.
O Google anunciou hoje que habilitará o suporte WebGPU em seu navegador Chrome padrão a partir da versão 113, que está atualmente em beta. O WebGPU, em desenvolvimento desde 2017, é uma API gráfica de próxima geração que visa aproveitar APIs de baixa sobrecarga, como Microsoft Direct3D 12, Apple Metal e Vulkan em navegadores da web e outros aplicativos.
O suporte WebGPU está disponível há algum tempo, mas está desativado por padrão no Chrome porque a API não foi finalizada e as coisas podem quebrar de atualização para atualização. O Google diz que a Mozilla e a Apple acabarão suportando WebGPU no Firefox e Safari, e navegadores como Microsoft Edge e Opera que dependem do mecanismo de navegador Chromium podem habilitá-lo, como o Google fez.
O Chrome 113 suporta WebGPU no Windows, macOS e ChromeOS para começar, enquanto o “suporte para outras plataformas” como Linux e Android “está chegando ainda este ano”. Esta versão do navegador deve estar disponível para todos os usuários do Chrome em maio.
O suporte no Chrome é um grande avanço para qualquer novo padrão, seja uma API nova ou atualizada, formato de imagem ou codec de vídeo. De acordo com a StatCounter, o próprio Chrome representa cerca de dois terços da participação no mercado de navegadores em todo o mundo e quase 80% da participação total no mercado de navegadores, se você contar outros navegadores baseados no Chromium. Depois que o Safari e o Firefox adicionarem suporte, praticamente todos os navegadores da Web em todo o mundo serão capazes de executar o código WebGPU, portanto, vale a pena explicar brevemente o que é o WebGPU e por que ele existe.
O que é GPU Web?
O WebGPU é uma espécie de sucessor do WebGL , uma API muito mais antiga que permite exibir gráficos baseados em OpenGL em seu navegador sem a necessidade de plug-ins adicionais de terceiros, como o Adobe Flash. Embora o WebGL tenha sido revolucionário quando foi anunciado em 2009, hoje ele sofre dos mesmos problemas do OpenGL: não tira o máximo proveito das GPUs modernas, pode perder desempenho devido à sobrecarga do driver e tem apenas oportunidades limitadas. e suporte desajeitado para cargas de computação de GPU.
“Enquanto o WebGL é projetado principalmente para desenhar imagens, mas pode ser reaproveitado (com mais esforço) para executar outros tipos de computação, o WebGPU tem suporte de alto nível para executar computação geral na GPU”, diz um rascunho do documento explicando por que existe o WebGPU . A nova API melhorará os gráficos em ambientes como Babylon.js e mecanismos de jogos como Unity; oferecerá suporte a cargas de trabalho aceleradas por GPU, como as usadas para aprendizado de máquina e inteligência artificial; e pode tornar mais fácil para aplicativos da Web de foto e vídeo (entre outros) aproveitar a aceleração de GPU da qual os aplicativos nativos se beneficiam.
O WebGPU está sendo desenvolvido por um grupo de trabalho que inclui representantes do Google, Microsoft, Apple, Mozilla, Intel e muitas outras empresas e, como resultado, a API foi projetada para ser o mais amplamente compatível possível. O WebGPU não é uma implementação direta de nenhuma API gráfica existente, mas é uma API nativa que fica por cima e interage com Direct3D 12, Metal e Vulkan. Este explicador de Surma, engenheiro da Shopify e ex-funcionário do Google, resume bem (ênfase nossa):
“Enquanto o WebGL é apenas um invólucro fino em torno do OpenGL, o WebGPU adotou uma abordagem diferente. Ele apresenta suas próprias abstrações e não reflete diretamente nenhuma dessas APIs nativas. Isso ocorre em parte porque nenhuma API única está disponível em todos os sistemas, mas também porque muitos conceitos (como gerenciamento de memória de nível extremamente baixo) não são idiomáticos para a API da Web. Em vez disso, a WebGPU foi projetada para parecer “weblike” e convenientemente se encaixar em qualquer uma das APIs gráficas nativas, abstraindo suas idiossincrasias. É padronizado no W3C e todos os principais fornecedores de navegadores estão sentados ao redor da mesa.”
Isso tem a vantagem de que o código WebGPU se torna muito portátil – escreva o código WebGPU e, desde que os usuários tenham hardware e um navegador compatível, você deve obter o mesmo resultado em um sistema Windows com Direct3D e em um telefone Android com Vulkan. E evita alguns dos hacks que mantêm o WebGL funcionando – por exemplo, o WebGL no Windows e macOS nem usa o OpenGL diretamente, mas usa um tradutor chamado ANGLE, que transforma as chamadas da API do OpenGL em Direct3D e chamadas da API do Metal . Com WebGPU, não há necessidade de iniciar um projeto completamente separado para escrever uma implementação de OpenGL lenta ou mal mantida.
O WebGPU também possui sua própria linguagem de sombreamento (WGSL), que a equipe do Chrome ainda está trabalhando para oferecer suporte – o anúncio de hoje diz que o Google “planeja fornecer acesso mais profundo aos núcleos de sombreamento” via WGSL em uma versão futura. Como o restante da API WebGPU, o WGSL é independente de plataforma e traduz facilmente para o idioma de shader preferido de qualquer sistema operacional em que você o use.
Por fim, apesar da palavra “rede” no nome, a API WebGPU não se limita aos navegadores. O projeto wgpu é a versão Rust do WebGPU que permite escrever aplicativos WebGPU e executá-los fora dos navegadores da web.
Se você quiser experimentar o WebGPU agora, o Chrome 113 beta está disponível aqui . Um repositório GitHub com amostras de código está disponível aqui e há documentação oficial para WebGPU e WGSL .
Deixe um comentário