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

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

Оптимизировать JavaScript

Участники Chromium увеличили производительность WebGPU для методов GPUComputePassEncoder , GPURenderPassEncoder и GPUCommandEncoder за счет сокращения накладных расходов на выполнение вызовов из сгенерированного кода в движке JavaScript V8 в обработчики C++ в движке рендеринга Blink. См. выпуск chromium:1417558 .

Следующий микротест показывает, что время ЦП вызовов из JavaScript снижается примерно с 0,5 мс на отрисовку 10 КБ до примерно 0,3 мс на отрисовку 10 КБ, что представляет собой улучшение на 40%.

Снимок экрана: график производительности браузера Chrome, показывающий улучшение скорости вызовов.
График производительности Chrome, показывающий улучшения в быстрых вызовах ( источник ).

getCurrentTexture() на ненастроенном холсте выдает InvalidStateError

Вызов метода GPUCanvasContext getCurrentTexture() на ненастроенном холсте теперь выдает InvalidStateError вместо OperationError в соответствии со спецификацией WebGPU . См. выпуск chromium:1424461 .

const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError

Обновления WGSL

Векторы AbstractInt , заполненные нулями, теперь можно записать как vec2() , vec3() и vec4() . См. выпуск оттенка:1892 . Например:

  • vec2() — это vec2(0,0)
  • vec3() — это vec3(0,0,0)
  • vec4() — это vec4(0,0,0,0)

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

Улучшение сообщений об ошибках

Метки дескрипторов недопустимых объектов больше не удаляются, чтобы вы могли видеть их в сообщениях об ошибках. См. выпуск Dawn:1771 .

Добавьте недостающие API для Node.js

Методы GPUAdapter::requestAdapterInfo() и GPUBuffer::getMapState() теперь реализованы для Node.js. См. выпуск Dawn:1761 .

Что нового в WebGPU

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

Хром 124

Хром 123

Хром 122

Хром 121

Хром 120

Хром 119

Хром 118

Хром 117

Хром 116

Хром 115

Хром 114

Хром 113