Buffer de vértice não definido
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 issue dawn:1675.
// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);
Desvincular grupo
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 issue dawn:1675.
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
Erros de silêncio na criação de pipeline assíncrono quando o dispositivo é perdido
Os métodos createComputePipelineAsync()
e createRenderPipelineAsync()
do GPUDevice
retornam uma promessa que é resolvida quando a criação do pipeline é 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 funcionem o máximo possível. Consulte dawn issue:1874.
Atualizações da criação de módulos 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 "Suporte não seguro ao WebGPU", já que o SPIR-V não faz parte da especificação do WebGPU. Antes dessa mudança, o uso do SPIR-V causava a geração de um GPUInternalError.
Consulte mudança chromium:4711911.
Melhorar a experiência do desenvolvedor
A mensagem de erro de validação para vinculações de layout de grupo de vinculação no shader 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 issue dawn:1883.
Como armazenar pipelines em cache com layout gerado automaticamente
Os pipelines criados com createRenderPipeline({ layout: "auto" })
agora aproveitam os mecanismos de armazenamento em cache no Chrome. Isso significa que esses pipelines serão criados com mais eficiência e vão usar menos memória. Consulte issue dawn:1933.
Atualizações do Dawn
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. Consulte change 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 abrange apenas alguns dos principais destaques. Confira a lista completa de confirmações.
Novidades na WebGPU
Uma lista de tudo o que foi abordado na série O que há de novo na WebGPU.
Chrome 131
- Distâncias de corte na WGSL
- GPUCanvasContext getConfiguration()
- Os primitivos de ponto e linha não podem ter viés de profundidade
- Funções integradas de verificação inclusiva para subgrupos
- Suporte experimental para multidraw indireto
- Opção de compilação do módulo do sombreador: matemática rigorosa
- O método requestAdapterInfo() do GPUAdapter foi removido
- Atualizações do amanhecer
Chrome 130
- Combinação de duas origens
- Melhorias no tempo de compilação de sombreador no Metal
- Descontinuação do método requestAdapterInfo() do GPUAdapter
- Atualizações do Dawn
Chrome 129
- Suporte a HDR com modo de mapeamento de tons de tela
- Suporte a subgrupos expandidos
- Atualizações do Dawn
Chrome 128
- Testar subgrupos
- A descontinuação da configuração de viés de profundidade para linhas e pontos
- Ocultar o aviso do DevTools de erro não capturado se preventDefault
- A WGSL interpola a amostragem primeiro e
- Atualizações do Dawn
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 Dawn
Chrome 126
- Aumento do limite de maxTextureArrayLayers
- Otimização de upload de buffer para o back-end do Vulkan
- Melhorias no tempo de compilação de sombreador
- Os buffers de comando enviados precisam ser exclusivos
- Atualizações do Dawn
Chrome 125
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 Dawn
Chrome 123
- Suporte para funções integradas do DP4a na WGSL
- Parâmetros de ponteiro irrestritos na WGSL
- Açúcar sintático para desreferenciar compósitos na WGSL
- Estado somente leitura separado para aspectos de stencil e profundidade
- Atualizações do Dawn
Chrome 122
- Ampliar o alcance com o modo de compatibilidade (recurso em desenvolvimento)
- Aumentar o limite de maxVertexAttributes
- Atualizações do Dawn
Chrome 121
- Suporte à WebGPU no Android
- Usar DXC em vez de FXC para a compilação de shaders no Windows
- Consultas de carimbo de data/hora em transmissões 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 pilhas de memória
- Atualizações do Dawn
Chrome 120
- Suporte a valores de ponto flutuante de 16 bits na WGSL
- Superar os limites
- Mudanças no estado de profundidade do estêncil
- Atualizações das informações do adaptador
- Quantização de consultas de carimbo de data/hora
- Recursos de limpeza geral
Chrome 119
- Texturas flutuantes filtráveis de 32 bits
- Formato de vértice unorm10-10-10-2
- Formato de textura rgb10a2uint
- Atualizações do Dawn
Chrome 118
- Suporte a 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
- Desvincular grupo
- Silenciar erros da criação de pipeline assíncrono quando o dispositivo é perdido
- Atualizações na criação de módulos de sombreador SPIR-V
- Como melhorar a experiência do desenvolvedor
- Armazenamento em cache de pipelines com layout gerado automaticamente
- Atualizações do Dawn
Chrome 116
- Integração com WebCodecs
- Dispositivo perdido retornado por GPUAdapter
requestDevice()
- Manter a reprodução de vídeo suave se
importExternalTexture()
for chamado - Conformidade com as especificações
- Como melhorar a experiência do desenvolvedor
- Atualizações do Dawn
Chrome 115
- Extensões de linguagem WGSL com suporte
- Suporte experimental para Direct3D 11
- Acessar a GPU discreta por padrão na alimentação CA
- Como melhorar a experiência do desenvolvedor
- Atualizações do Dawn
Chrome 114
- Otimizar o JavaScript
- getCurrentTexture() em uma tela não configurada gera um erro InvalidStateError
- Atualizações da WGSL
- Atualizações do Dawn