O Chrome já terá suporte para WebGPU e será ativado por padrão

WebGPU Chrome

Após anos de desenvolvimento, a equipe do Chrome lança WebGPU

Alguns dias atrás Google revelado através de um anunciado o suporte padrão para a API gráfica WebGPU e WebGPU Shading Language (WGSL) na ramificação do Chrome 113, que tem lançamento previsto para 2 de maio.

Para quem não conhece o WebGPU, saiba que fornece uma API semelhante ao Vulkan, Metal e Direct3D 12 para executar operações do lado da GPU, como renderização e computação, e também permite usar uma linguagem shader para escrever programas do lado da GPU.

Sobre a WebGPU

Conceitualmente, O WebGPU difere do WebGL da mesma forma que a API de gráficos Vulkan difere do OpenGL, mas o WebGPU não é baseado em uma API gráfica específica, mas sim uma camada de uso geral que usa os mesmos primitivos de baixo nível encontrados no Vulkan. Metal e Direct3D. WebGPU fornece aplicativos JavaScript com controle de baixo nível sobre a organização, processamento e transmissão de comandos para a GPU, gerenciamento de recursos associados, memória, buffers, objetos de textura e shaders gráficos compilados. Essa abordagem permite que você obtenha aplicativos gráficos de maior desempenho, reduzindo a sobrecarga e aumentando a eficiência da GPU.

WebGPU permite que você crie projetos 3D complexos para a web que funcionam tão bem quanto programas autônomos que usam diretamente Vulkan, Metal ou Direct3D, mas não estão vinculados a plataformas específicas. A WebGPU também fornece opções adicionais para portar programas gráficos nativos para um formulário habilitado para web compilando em WebAssembly. Além dos gráficos 3D, o WebGPU também abrange as possibilidades associadas ao descarregamento de cálculos para o lado da GPU e execução de shaders.

Das principais características do WebGPU, podemos destacar o seguinte:

  • Gestão separada de recursos, trabalho preparatório e transmissão de comandos para a GPU (no WebGL, um objeto era responsável por tudo ao mesmo tempo). Três contextos separados são fornecidos: GPUDevice para criar recursos como texturas e buffers; GPUCommandEncoder para codificar comandos individuais, incluindo etapas de processamento e cálculo; GPUCommandBuffer para passar para a fila de execução da GPU.
    O resultado pode ser renderizado em uma área associada a um ou mais itens de tela ou renderizado sem saída (por exemplo, ao executar tarefas computacionais). O preparo facilita a separação das operações de criação e provisionamento de recursos em diferentes controladores que podem ser executados em diferentes threads.
  • Uma abordagem diferente para o tratamento de estado. O WebGPU fornece dois objetos, GPURenderPipeline e GPUComputePipeline, que permitem combinar diferentes estados predefinidos pelo desenvolvedor, possibilitando que o navegador não desperdice recursos com trabalhos adicionais, como recompilar shaders. Os estados suportados incluem: shaders, buffer de vértice e layouts de atributo, layouts de grupo fixo, mesclagem, profundidade e padrões, formatos de saída pós-renderização.
  • Um modelo de ligação, muito parecido com as ferramentas de pooling de recursos da Vulkan. Para agrupar recursos em grupos, o WebGPU fornece um objeto GPUBindGroup que pode ser vinculado a outros objetos semelhantes para uso em sombreadores durante a gravação de comandos.
    A criação desses grupos permite que o controlador execute as ações preparatórias necessárias com antecedência e permite que o navegador alterne as ligações de recursos entre chamadas de desenho muito mais rapidamente. O layout das ligações de recursos pode ser predefinido usando o objeto GPUBindGroupLayout.

Além do Chrome, O suporte experimental à WebGPU foi testado desde abril de 2020 no Firefox e a partir de novembro de 2021 no Safari. Para ativar o WebGPU no Firefox, você deve definir os sinalizadores dom.webgpu.enabled e gfx.webgpu.force-enabled em about:config.

Ainda não há planos para ativar o WebGPU por padrão no Firefox e no Safari. As implementações de WebGPU desenvolvidas para Firefox e Chrome estão disponíveis como bibliotecas separadas: Dawn (C++) e wgpu (Rust) que você pode usar para integrar o suporte a WebGPU em seus aplicativos.

Também digno de nota é que o trabalho está em andamento para adicionar suporte WebGPU a bibliotecas JavaScript populares nativamente usando WebGL. Por exemplo, o suporte WebGPU completo já foi declarado em Babylon.js e parcial em Three.js , PlayCanvas e TensorFlow.js.

A implementação de A WebGPU só será habilitada inicialmente em compilações para ChromeOS, macOS e Windows, enquanto para Linux e Android, o suporte WebGPU será ativado posteriormente.

Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.