Cancelar buffer de vértice
Transmitir null
em vez de um GPUBuffer
para setVertexBuffer()
em GPURenderPassEncoder
ou GPURenderBundleEncoder
permite cancelar a definição de um buffer de vértice definido anteriormente em um determinado slot. Consulte o problema dawn:1675.
// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);
Cancelar grupo de vinculação
Transmitir null
em vez de um GPUBindGroup
para setBindGroup()
em GPURenderPassEncoder
ou GPURenderBundleEncoder
permite cancelar a definição de um grupo de vinculação definido anteriormente em um determinado slot. Consulte o problema dawn:1675.
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
Silenciar erros na criação de pipeline assíncrono quando o dispositivo for perdido
Os métodos createComputePipelineAsync()
e createRenderPipelineAsync()
de GPUDevice
retornam uma promessa que é resolvida quando a criação do pipeline foi concluída. A partir de agora, os erros da criação de pipeline assíncrono serão silenciados quando o GPUDevice
for lost
para que os dispositivos perdidos pareçam funcionar o máximo possível. Consulte dawn issue:1874.
Atualizações na criação do módulo de sombreador SPIR-V
A criação de um módulo de sombreador SPIR-V com createShaderModule()
agora gera um TypeError, a menos que você execute o Chrome com a opção "Unsafe WebGPU Support" flag como SPIR-V não faz parte da especificação da WebGPU. Antes dessa alteração, o uso de SPIR-V causava a geração de um GPUInternalError.
Consulte alterar chromium:4711911.
Como melhorar a experiência do desenvolvedor
A mensagem de erro de validação para vinculações de layout de grupo de vinculação no sombreador de vértice foi aprimorada para vinculações de textura de armazenamento somente gravação e buffer de armazenamento de leitura e gravação. Consulte o problema dawn:1883 (link em inglês).
Como armazenar pipelines em cache com layout gerado automaticamente
Os pipelines criados com createRenderPipeline({ layout: "auto" })
agora usam os mecanismos de armazenamento em cache do Chrome. Isso significa que esses pipelines serão criados com mais eficiência e vão usar menos memória. Consulte o problema dawn:1933 (link em inglês).
Atualizações do amanhecer
O wgpu::RequestAdapterOptionsBackendType
agora faz parte do wgpu::RequestAdapterOptions
para facilitar a solicitação de um back-end específico ao receber um adaptador. Confira o exemplo a seguir e o problema dawn:1875 (link em inglês).
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
Vários métodos adicionais foram implementados para Node.js. Veja alterar dawn:142465.
A API C webgpu.h mudou o tipo de valores booleanos de stdbool
para WGPUBool
, que é um uint32_t
. Essa mudança foi feita para garantir que a API tenha uma ABI equivalente em C e C++.
Isso cobre apenas alguns dos principais destaques. Confira a lista completa de confirmações (link em inglês).
Novidades da WebGPU
Uma lista de tudo o que foi abordado na série O que há de novo na WebGPU.
Chrome 128
- Fazendo testes com subgrupos
- Suspender o uso da configuração de viés de profundidade para linhas e pontos
- Ocultar aviso de erro não capturado do DevTools se preventDefault
- A amostragem de WGSL é interpolada primeiro e
- Atualizações do amanhecer
Chrome 127
- Suporte experimental para OpenGL ES no Android
- Atributo de informações do GPUAdapter
- Melhorias na interoperabilidade do WebAssembly
- Erros aprimorados do codificador de comando
- Atualizações do amanhecer
Chrome 126
- Aumentar o limite de maxTextureArrayLayers
- Otimização do upload de buffer para back-end do Vulkan
- Melhorias no tempo de compilação do sombreador
- Os buffers de comando enviados precisam ser exclusivos
- Atualizações do amanhecer
Chrome 125
- Subgrupos (recurso em desenvolvimento)
- Renderizar uma fração de textura 3D
- Atualizações do amanhecer
Chrome 124
- Texturas de armazenamento somente leitura e leitura/gravação
- Suporte aos service workers e workers compartilhados
- Novos atributos de informações do adaptador
- Correções de bugs
- Atualizações do amanhecer
Chrome 123
- Suporte para funções integradas do DP4a na WGSL
- Parâmetros de ponteiro irrestritos na WGSL
- Sintaxe de açúcar para desreferenciar compostos na WGSL (link em inglês)
- Estado somente leitura separado para aspectos de estêncil e de profundidade
- Atualizações do amanhecer
Chrome 122
- Expandir o alcance com o modo de compatibilidade (recurso em desenvolvimento)
- Aumentar o limite de maxVertexAttributes
- Atualizações do amanhecer
Chrome 121
- Suporte à WebGPU no Android
- Usar DXC em vez de FXC para compilação de sombreador no Windows
- Consultas de carimbo de data/hora em passagens de computação e renderização
- Pontos de entrada padrão para módulos de sombreador
- Suporte a display-p3 como espaço de cores GPUExternalTexture
- Informações sobre heaps de memória
- Atualizações do amanhecer
Chrome 120
- Suporte para valores de ponto flutuante de 16 bits na WGSL
- Supere os limites
- Mudanças no estado de profundidade do estêncil
- Atualizações de informações sobre os adaptadores
- Quantização de consultas de carimbo de data/hora
- Recursos para fazer faxina
Chrome 119
- Texturas flutuantes filtráveis de 32 bits
- Formato de vértice unorm10-10-10-2
- Formato de textura rgb10a2uint
- Atualizações do amanhecer
Chrome 118
- Compatibilidade de HTMLImageElement e ImageData em
copyExternalImageToTexture()
- Suporte experimental à textura de armazenamento somente leitura e leitura-gravação
- Atualizações do amanhecer
Chrome 117
- Não definir buffer de vértice
- Cancelar configuração do grupo de vinculação
- Silenciar erros da criação de pipeline assíncrono quando o dispositivo for perdido
- Atualizações da criação do módulo de sombreador SPIR-V
- Como melhorar a experiência do desenvolvedor
- Pipelines em cache com layout gerado automaticamente
- Atualizações do amanhecer
Chrome 116
- Integração com WebCodecs
- Dispositivo perdido retornado pelo GPUAdapter
requestDevice()
- Manter a reprodução de vídeo suave se
importExternalTexture()
for chamado - Conformidade com especificações
- Como melhorar a experiência do desenvolvedor
- Atualizações do amanhecer
Chrome 115
- Extensões de idiomas da WGSL compatíveis
- Suporte experimental para Direct3D 11
- Receber uma GPU discreta por padrão com alimentação CA
- Como melhorar a experiência do desenvolvedor
- Atualizações do amanhecer
Chrome 114
- Otimizar o JavaScript
- getCurrentTexture() em uma tela não configurada gera InvalidStateError
- Atualizações da WGSL
- Atualizações do amanhecer