Novidades do WebGPU (Chrome 143)

François Beaufort
François Beaufort

Publicado em: 19 de novembro de 2025

Swizzle do componente 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 sombreador.

Quando o "texture-component-swizzle" recurso 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 mapeando 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 para 0.
  • "1": força o valor 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 anteriormente, o uso do formato "bgra8unorm" com texturas de armazenamento somente leitura foi removido. A especificação da WebGPU proíbe explicitamente isso, e a permissão anterior no Chrome era um bug, já que esse formato é destinado ao acesso somente gravação e não é portátil. Consulte o problema 427681156.

Atualizações do Dawn

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

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

Novidades na WebGPU

Uma lista de tudo o que foi abordado na série Novidades na WebGPU.

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

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