Novidades do WebGPU (Chrome 143)

François Beaufort
François Beaufort

Publicado em: 19 de novembro de 2025

Troca de componentes de textura

Agora é possível reorganizar ou substituir os componentes de cor dos canais vermelho, verde, azul e alfa da textura quando acessados por um shader.

Quando o recurso "texture-component-swizzle" estiver disponível em um GPUAdapter, solicite um GPUDevice com esse recurso e crie um GPUTextureView chamando createView() com uma nova opção swizzle. Esse valor é uma string de comprimento quatro, com cada caractere mapeado para os componentes vermelho, verde, azul e alfa da visualização, respectivamente. Cada caractere pode ser:

  • "r": extrai o valor do canal vermelho da textura.
  • "g": extrai o valor do canal verde da textura.
  • "b": extrai o valor do canal azul da textura.
  • "a": extrai o valor do canal alfa da textura.
  • "0": força o valor dele a 0.
  • "1": força o valor dele para 1.

Consulte o snippet a seguir e a entrada do chromestatus.

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("texture-component-swizzle")) {
  throw new Error("Texture component swizzle support is not available");
}
// Explicitly request texture component swizzle support.
const device = await adapter.requestDevice({
  requiredFeatures: ["texture-component-swizzle"],
});

// ... Assuming myTexture is a GPUTexture with a single red channel.

// Map the view's red, green, blue components to myTexture's red channel
// and force the view's alpha component to 1 so that the shader sees it as
// a grayscale image.
const view = myTexture.createView({ swizzle: "rrr1" });

// Send the appropriate commands to the GPU...

Remover o uso de textura de armazenamento somente leitura bgra8unorm

Conforme anunciado, o uso do formato "bgra8unorm" com texturas de armazenamento somente leitura foi removido. A especificação WebGPU proíbe explicitamente isso, e a permissão anterior no Chrome era um bug, já que esse formato é destinado apenas ao acesso de gravação e não é portátil. Consulte o problema 427681156.

Atualizações do amanhecer

Foi corrigido um erro de validação gerado ao limpar uma textura 3D no Vulkan. Consulte o problema 443950688.

Isso abrange apenas alguns dos principais destaques. Confira a lista completa de commits.

Novidades no WebGPU

Uma lista de tudo o que foi abordado na série O que há de novo no WebGPU.

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113