O suporte WebGPU chega às versões noturnas do Firefox

Informações sobre a integração da especificação de ajuda WebGPU lançada no Firefox nightly builds, que agora é fornece uma interface de programação para processamento de gráficos 3D e computação no lado da GPU, conceitualmente semelhante à API Vulkan, metal e Direct3D 12. A especificação está sendo desenvolvida pela Mozilla, Google, Apple, Microsoft e representantes da comunidade em um grupo de trabalho criado pela organização W3C.

O principal objetivo do WebGPU é criar uma interface de software segura, conveniente, portátil e de alto desempenho para uso na plataforma da web com tecnologia de gráficos 3D e recursos fornecidos por APIs de gráficos de sistema modernos, como Direct3D 12 no Windows, Metal no macOS e Vulkan no Linux.

Conceitualmente, WebGPU difere de WebGL da mesma forma que Vulkan difere de OpenGL e não é baseado em uma API gráfica específica, ao contrário, é uma camada universal, em geral, usando os mesmos primitivos de baixo nível que estão disponíveis em Vulkan, Metal e Direct3D.

No Firefox, a configuração "dom.webgpu.enabled" é fornecida para habilitar WebGPU em cerca de: config. Além de renderizar o CanvasContext, ele também requer a inclusão do sistema de composição do WebRender ("gfx.webrender.all" em about: config).

A implementação WebGPU é baseada no código do projeto wgpu escrito em Rust e pode funcionar com APIs DX12, Vulkan e Metal no Linux, Android, Windows e macOS (suporte DX11 e OpenGL ES 3.0 também está em desenvolvimento).

Sobre a WebGPU

WebGPU fornece aplicativos JavaScript com ferramentas para controle de nível inferior sobre a organização, o processamento e transmissão de comandos para a GPU, gerenciamento de recursos relacionados, memória, buffers, objetos de textura e sombreadores gráficos compilados. Esta abordagem irá permite aplicativos gráficos de alto desempenho reduzindo a sobrecarga e aumentando a eficiência do trabalho com a GPU.

WebGPU torna possível criar projetos 3D complexos completos para a web Eles não têm desempenho pior do que programas autônomos que se comunicam diretamente com Vulkan, Metal ou Direct3D, mas não estão vinculados a plataformas específicas.

também fornece recursos adicionais ao portar programas gráficos nativos para uma forma que pode funcionar com base em tecnologias baseadas na web usando a tecnologia WebAssembly.

Além dos gráficos 3D, WebGPU também cobre as possibilidades associadas à eliminação da computação ao lado da GPU e suporte para o desenvolvimento de shader. Os sombreadores podem ser criados na linguagem de sombreador WebGPU ou especificados no formato intermediário SPIR-V e, em seguida, traduzidos em linguagens de sombreador com suporte pelos drivers atuais.

WebGPU usa gerenciamento de recursos separado, trabalho preparatório e transferência de comando para a GPU (no WebGL, um objeto era responsável por tudo de uma vez). Três contextos separados são fornecidos: GPUDevice para criar recursos como texturas e buffers; GPUCommandEncoder para codificar comandos individuais, incluindo os estágios de renderização e computação; GPUCommandBuffer para enfileirar para execução na GPU.

A segunda diferença entre WebGPU e WebGL é uma abordagem diferente para lidar com estados. Dois objetos são propostos no WebGPU: GPURenderPipeline e GPUComputePipeline, que permitem combinar vários estados predefinidos pelo desenvolvedor, o que permite ao navegador não desperdiçar recursos em trabalhos adicionais, como recompilar shaders. Os estados suportados incluem: sombreadores, buffers de vértice e layouts de atributos, layouts de grupos anexados, combinação, profundidade e padrões, formatos de saída pós-renderização.

A terceira característica do WebGPU é o modelo de ligação, que em muitos aspectos assemelha-se aos meios de agrupar recursos presentes no Vulkan. Para agrupar recursos em grupos, WebGPU fornece um objeto GPUBindGroup que, digitando comandos, pode ser associado a outros objetos semelhantes para uso em sombreadores.

A criação de tais grupos permite que o driver execute as ações preparatórias necessárias com antecedência, e o navegador permite que ele alterne links de recursos entre chamadas pull com muito mais rapidez.

fonte: https://hacks.mozilla.org/


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.