Что нового в WebGPU (Chrome 143)

Франсуа Бофор
François Beaufort

Опубликовано: 19 ноября 2025 г.

Компонент текстуры swizzle

Теперь можно переставлять или заменять цветовые компоненты красного, зеленого, синего и альфа-каналов текстуры при обращении к ним из шейдера.

Если в GPUAdapter доступна функция "texture-component-swizzle" , запросите GPUDevice с этой функцией и создайте GPUTextureView, вызвав createView() с новой опцией swizzle . Это значение представляет собой строку длиной четыре символа, каждый из которых соответствует красному, зеленому, синему и альфа-компонентам представления соответственно. Каждый символ может быть одним из следующих:

  • "r" : Значение берется из красного канала текстуры.
  • "g" : Значение берется из зеленого канала текстуры.
  • "b" : Возьмите значение из синего канала текстуры.
  • "a" : Значение берется из альфа-канала текстуры.
  • "0" : Принудительно обнулить его значение.
  • "1" : Принудительно установить его значение равным 1.

См. следующий фрагмент кода и запись в 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...

Удалить использование текстур в хранилище только для чтения bgra8unorm

Как было объявлено ранее, использование формата "bgra8unorm" с текстурами, хранящимися только для чтения, теперь исключено. Спецификация WebGPU явно запрещает это, а его предыдущее разрешение в Chrome было ошибкой, поскольку этот формат предназначен для доступа только для записи и не является переносимым. См. проблему 427681156 .

Утренние обновления

Исправлена ​​ошибка проверки, возникающая при очистке 3D-текстуры в Vulkan. См. проблему 443950688.

Здесь описаны лишь некоторые из ключевых моментов. Ознакомьтесь с полным списком изменений .

Что нового в WebGPU?

Список всего, что было рассмотрено в серии статей «Что нового в WebGPU» .

Хром 144

Хром 143

Хром 142

Хром 141

Хром 140

Хром 139

Хром 138

Хром 137

Хром 136

Хром 135

Хром 134

Хром 133

Хром 132

Хром 131

Хром 130

Хром 129

Хром 128

Хром 127

Хром 126

Хром 125

Хром 124

Хром 123

Хром 122

Хром 121

Хром 120

Хром 119

Хром 118

Хром 117

Хром 116

Хром 115

Хром 114

Хром 113