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

François Beaufort
François Beaufort

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

Завершено изменение оттенка с помощью ИИ

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

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

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

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

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

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

Эта функция повышает эффективность, поскольку позволяет не проверять границы, и скоро она будет включена по умолчанию на всех платформах. Подробнее об ошибке 348701956…

Обновление SPIR-V 1.4 для серверной части Vulkan

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

Обновления на рассвете

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

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

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

Что нового в WebGPU

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

Chrome 155–156

Chrome 153–154

Chrome 151–152

Chrome 149–150

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