Что нового в WebGPU (Chrome 141),Что нового в WebGPU (Chrome 141)

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

Опубликовано: 24 сентября 2025 г.

Тонировка ИК завершена

Завершён долгосрочный (более 2,5 лет) проект по повышению производительности внутреннего кода Tint, компилятора WGSL. В бэкенд было добавлено промежуточное представление (IR) между текущим абстрактным синтаксическим деревом (AST) и генераторами кода бэкенда. Внедрение IR позволило команде Chrome удалить все преобразования AST и пересоздать их в виде преобразований IR, которые, благодаря архитектурным различиям, работают значительно быстрее. Благодаря этим изменениям скорость работы внутреннего кода Tint на некоторых платформах увеличилась до семи раз.

Этот новый IR открывает значительный потенциал для сложного, масштабного анализа и преобразования шейдеров, обещая не только заметный прирост производительности, но и более плавный путь для Chrome к предоставлению захватывающих новых функций WebGPU в будущем.

Начиная с этого этапа все внутренние генераторы кода работают с представлением IR, все преобразования AST были удалены, а весь код поддержки AST для запуска преобразований был удален.

В рамках работы по улучшению IR фронтенд SPIR-V (используемый приложениями для преобразования SPIR-V в WGSL) был преобразован из генерации представления AST в прямую генерацию в IR. Это улучшение также добавляет долгожданные функции, такие как поддержка float 16, во фронтенд SPIR-V.

Анализ целочисленного диапазона в компиляторе WGSL

Команда Chrome постепенно внедряет новый анализ целочисленного диапазона для Tint, компилятора языка шейдеров WebGPU. Анализ целочисленного диапазона оценивает минимальное и максимальное значения, которые может принимать целочисленная переменная во время выполнения программы, без её фактического запуска.

Эта функция направлена ​​на повышение эффективности за счёт снижения необходимости в дорогостоящей проверке границ и вскоре будет включена по умолчанию на всех платформах. См. issue 348701956 .

Обновление SPIR-V 1.4 для бэкэнда Vulkan

Поддержка SPIR-V 1.4 реализована везде, где это возможно, на устройствах Android и ChromeOS. Это обновление позволяет Tint, компилятору WGSL, использовать новые функции SPIR-V, послабления и новые инструкции для более эффективной генерации кода в определённых сценариях при компиляции шейдеров Vulkan. См. issue 427717267 .

Обновления Dawn

Стандартизированный заголовок webgpu.h , определяющий основной API WebGPU C, наконец-то считается стабильным. Эта стабильность относится исключительно к основному API, определённому выше, не включая расширения реализации (например, от Dawn или Emdawnwebgpu), поэтому лучше всего использовать webgpu.h , предоставляемый именно той реализацией, с которой вы работаете. Несмотря на то, что заголовок стабилен, вы всё ещё можете столкнуться с непреднамеренными различиями между реализациями, поскольку мы продолжаем исправлять ошибки и обеспечивать совместимость в экосистеме. Если вы столкнулись с ними, сообщите об ошибке .

Благодаря внешнему участнику Уильяму Кэндиллону теперь вы можете найти готовые исполняемые файлы Dawn в виде артефактов на GitHub Actions. Они включают в себя статические .lib-файлы для Android, пакет .XCFramework для Apple и все необходимые заголовочные файлы. См. Dawn PR #39 и пример артефактов.

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

Что нового в WebGPU

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

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

,

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

Опубликовано: 24 сентября 2025 г.

Тонировка ИК завершена

Завершён долгосрочный (более 2,5 лет) проект по повышению производительности внутреннего кода Tint, компилятора WGSL. В бэкенд было добавлено промежуточное представление (IR) между текущим абстрактным синтаксическим деревом (AST) и генераторами кода бэкенда. Внедрение IR позволило команде Chrome удалить все преобразования AST и пересоздать их в виде преобразований IR, которые, благодаря архитектурным различиям, работают значительно быстрее. Благодаря этим изменениям скорость работы внутреннего кода Tint на некоторых платформах увеличилась до семи раз.

Этот новый IR открывает значительный потенциал для сложного, масштабного анализа и преобразования шейдеров, обещая не только заметный прирост производительности, но и более плавный путь для Chrome к предоставлению захватывающих новых функций WebGPU в будущем.

Начиная с этого этапа все внутренние генераторы кода работают с представлением IR, все преобразования AST были удалены, а весь код поддержки AST для запуска преобразований был удален.

В рамках работы по улучшению IR фронтенд SPIR-V (используемый приложениями для преобразования SPIR-V в WGSL) был преобразован из генерации представления AST в прямую генерацию в IR. Это улучшение также добавляет долгожданные функции, такие как поддержка float 16, во фронтенд SPIR-V.

Анализ целочисленного диапазона в компиляторе WGSL

Команда Chrome постепенно внедряет новый анализ целочисленного диапазона для Tint, компилятора языка шейдеров WebGPU. Анализ целочисленного диапазона оценивает минимальное и максимальное значения, которые может принимать целочисленная переменная во время выполнения программы, без её фактического запуска.

Эта функция направлена ​​на повышение эффективности за счёт снижения необходимости в дорогостоящей проверке границ и вскоре будет включена по умолчанию на всех платформах. См. issue 348701956 .

Обновление SPIR-V 1.4 для бэкэнда Vulkan

Поддержка SPIR-V 1.4 реализована везде, где это возможно, на устройствах Android и ChromeOS. Это обновление позволяет Tint, компилятору WGSL, использовать новые функции SPIR-V, послабления и новые инструкции для более эффективной генерации кода в определённых сценариях при компиляции шейдеров Vulkan. См. issue 427717267 .

Обновления Dawn

Стандартизированный заголовок webgpu.h , определяющий основной API WebGPU C, наконец-то считается стабильным. Эта стабильность относится исключительно к основному API, определённому выше, не включая расширения реализации (например, от Dawn или Emdawnwebgpu), поэтому лучше всего использовать webgpu.h , предоставляемый именно той реализацией, с которой вы работаете. Несмотря на то, что заголовок стабилен, вы всё ещё можете столкнуться с непреднамеренными различиями между реализациями, поскольку мы продолжаем исправлять ошибки и обеспечивать совместимость в экосистеме. Если вы столкнулись с ними, сообщите об ошибке .

Благодаря внешнему участнику Уильяму Кэндиллону теперь вы можете найти готовые исполняемые файлы Dawn в виде артефактов на GitHub Actions. Они включают в себя статические .lib-файлы для Android, пакет .XCFramework для Apple и все необходимые заголовочные файлы. См. Dawn PR #39 и пример артефактов.

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

Что нового в WebGPU

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

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