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

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

Опубликовано: 25 февраля 2026 г.

Поддержка режима совместимости с WebGPU в OpenGL ES 3.1

Хотя WebGPU разработан для работы с современными графическими API, такими как Vulkan, Metal и D3D12, у многих пользователей более старое оборудование, не поддерживающее эти стандарты. Чтобы устранить этот пробел и обеспечить широкую доступность, Chrome представляет новую функцию, которую можно включить по желанию, — режим совместимости.

Этот режим позволяет запускать WebGPU на более старых графических API, таких как OpenGL ES 3.1. Ориентируясь на несколько ограниченное подмножество спецификации WebGPU, вы гарантируете доступность вашего веб-приложения для всех, от новейших игровых компьютеров до старых ноутбуков и мобильных устройств. Начав с Android, команда изучает возможность поддержки других устройств, таких как ChromeOS с OpenGL ES 3.1 и Windows с Direct3D 11.

Для многих веб-приложений режим совместимости можно включить, передав featureLevel: "compatibility" при вызове метода requestAdapter() . Если ваше устройство поддерживает Core WebGPU, Chrome вернет адаптер, совместимый с Core, но ваше веб-приложение будет знать, что нужно оставаться в пределах ограничений совместимости, если не включит функцию "core-features-and-limits" (или не включит все доступные функции). Более сложные приложения могут потребовать незначительных корректировок, чтобы соответствовать ограничениям режима.

// Request a GPUAdapter in compatibility mode.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
const device = await adapter.requestDevice();

Подробную информацию об архитектурных ограничениях этого режима см. в руководстве по основам WebGPU. Кроме того, все примеры WebGPU теперь поддерживают режим совместимости. Вы также можете ознакомиться с планом выпуска .

Временные прикрепления

Для создания эффективных с точки зрения использования памяти прикреплений можно использовать новый флаг TRANSIENT_ATTACHMENT GPUTextureUsage. Это позволяет операциям рендеринга оставаться в памяти тайлов, что предотвращает использование видеопамяти и выделение видеопамяти для текстур.

Объявив текстуру временной (или «без памяти»), графический процессор понимает, что ей требуется содержимое текстуры лишь временно — а именно, только в течение текущего прохода рендеринга. Более того, поскольку содержимое текстуры удаляется после завершения прохода рендеринга, драйверу может вообще не потребоваться выделять для неё видеопамять.

В следующем примере показано, как создать временную текстуру.

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

if ('TRANSIENT_ATTACHMENT' in GPUTextureUsage) {

  const transientTexture = device.createTexture({
    size: [42, 42],
    // The TRANSIENT_ATTACHMENT flag indicates the texture content is temporary,
    // potentially keeping it in fast on-chip memory.
    usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TRANSIENT_ATTACHMENT,
    format: 'rgba8unorm',
  });
}

См. пример Hello Triangle MSAA - WebGPU и планы по его выпуску .

Расширение WGSL texture_and_sampler_let

Расширение языка WGSL texture_and_sampler_let позволяет присваивать переменные текстуры или сэмплера ключу let внутри шейдера WGSL. В настоящее время эта функция предоставляет альтернативный механизм именования и готовит почву для поддержки без привязки , когда методы, возвращающие текстуры или сэмплеры, могут храниться непосредственно в локальных переменных.

См. следующий пример и намерение отправить товар .

@group(0) @binding(0) var tex: texture_2d<f32>;
@group(1) @binding(0) var store : texture_storage_2d<r32float, read_write>;

@fragment fn main() {
    let a = tex;
    var res: vec4f = textureLoad(a, vec2i(1i), 0);

    textureStore(store, vec2i(0i), res);
}

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

Доступны следующие новые лимитные уровни:

Проверка SPIR-V включена по умолчанию в Android для обеспечения дополнительного уровня безопасности и предотвращения нестабильности драйвера из-за некорректных входных данных. См. проблему 473526182 .

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

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

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

Хром 146

Хром 145

Хром 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