Что нового в 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 000 итераций до примерно 0,3 мс на 10 000 итераций, что составляет улучшение на 40%.

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

Метод getCurrentTexture() на неконфигурированном холсте вызывает ошибку InvalidStateError.

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

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

Обновления WGSL

Теперь векторы AbstractInt , заполненные нулями, можно записывать как vec2() , vec3() и vec4() . См. проблему tint: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» .

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