Buffer de vértice não definido
Transmitir null
em vez de um GPUBuffer
para setVertexBuffer()
em GPURenderPassEncoder
ou GPURenderBundleEncoder
permite desativar um buffer de vértice definido anteriormente em um determinado slot. Consulte 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);
Grupo de vinculação não definido
Transmitir null
em vez de um GPUBindGroup
para setBindGroup()
em GPURenderPassEncoder
ou GPURenderBundleEncoder
permite desativar um grupo de vinculação definido anteriormente em um determinado slot. Consulte 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 da criação de pipeline assíncrono quando o dispositivo é perdido.
Os métodos createComputePipelineAsync()
e createRenderPipelineAsync()
de GPUDevice
retornam uma promessa que é resolvida quando a criação do pipeline é concluída. A partir de agora, os erros da criação de pipelines assíncronos serão silenciados quando 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 flag "Unsafe WebGPU Support", já que o SPIR-V não faz parte da especificação da WebGPU. Antes dessa mudança, o uso do SPIR-V causava a geração de um GPUInternalError.
Consulte alterar chromium:4711911.
Aprimoramento da 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 melhorada para buffer de armazenamento de leitura/gravação e vinculações de textura de armazenamento somente gravação. Consulte problema dawn:1883.
Pipelines de armazenamento em cache com layout gerado automaticamente
Os pipelines criados com createRenderPipeline({ layout: "auto" })
agora usam os mecanismos de armazenamento em cache no Chrome. Isso significa que esses pipelines serão criados com mais eficiência e usarão menos memória. Consulte problema dawn:1933.
Atualizações ao amanhecer
O wgpu::RequestAdapterOptionsBackendType
agora faz parte do wgpu::RequestAdapterOptions
para facilitar a solicitação de um back-end específico para os aplicativos ao receber um adaptador. Confira o exemplo a seguir e o issue dawn:1875.
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
Vários outros métodos foram implementados para Node.js. Consulte Mudar amanhecer: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++.
Esses são 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 125
Chrome 124
- Texturas de armazenamento somente leitura e leitura/gravação
- Suporte para 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 irrestrito na WGSL
- Simplificação da sintaxe para desreferenciar compostos na WGSL
- Separar o estado somente leitura para aspectos de estêncil e profundidade
- Atualizações do amanhecer
Chrome 122
- Expandir o alcance com o modo de compatibilidade (recurso em desenvolvimento)
- Aumentar o limite maxVertexAttributes
- Atualizações do amanhecer
Chrome 121
- Suporte para 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
Google Chrome 120
- Suporte para valores de ponto flutuante de 16 bits na WGSL
- Supere os limites
- Mudanças no estado do estêncil de profundidade
- Atualizações de informações sobre os adaptadores
- Quantização de consultas de carimbo de data/hora
- Recursos para limpeza de primavera
Chrome 119
- Texturas flutuantes de 32 bits filtráveis
- Formato de vértice unorm10-10-10-2
- Formato de textura rgb10a2uint
- Atualizações do amanhecer
Chrome 118
- Suporte para HTMLImageElement e ImageData no
copyExternalImageToTexture()
- Suporte experimental para textura de leitura/gravação e armazenamento somente leitura
- Atualizações do amanhecer
Chrome 117
- Buffer de vértice não definido
- Grupo de vinculação não definido
- Silenciar erros da criação de pipeline assíncrono quando o dispositivo é perdido
- Atualizações na criação do módulo de sombreador SPIR-V
- Melhorias na experiência do desenvolvedor
- Pipelines de armazenamento em cache com layout gerado automaticamente
- Atualizações do amanhecer
Chrome 116
- Integração do WebCodecs
- Dispositivo perdido retornado pelo GPUAdapter
requestDevice()
- Manter a reprodução do vídeo suave se
importExternalTexture()
for chamado - Conformidade com especificações
- Melhorias na experiência do desenvolvedor
- Atualizações do amanhecer
Chrome 115
- Extensões de idioma da WGSL compatíveis
- Suporte experimental para Direct3D 11
- Receber GPU discreta por padrão com alimentação CA
- Melhorias na experiência do desenvolvedor
- Atualizações do amanhecer
Chrome 114
- Optimize JavaScript
- getCurrentTexture() na tela não configurada gera InvalidStateError.
- Atualizações da WGSL
- Atualizações do amanhecer