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

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

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

Завершено тонирование ИК-излучения

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

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

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

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

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

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

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

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

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

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

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

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

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

Что нового в 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