WebGPU 的新变化 (Chrome 114)

François Beaufort
François Beaufort

优化 JavaScript

Chromium 贡献者通过减少从 V8 JavaScript 引擎中的生成代码到 Blink 渲染引擎中的 C++ 处理程序的调用开销,加快了 GPUComputePassEncoderGPURenderPassEncoderGPUCommandEncoder 方法的 WebGPU 性能。请参阅问题 chromium:1417558

以下微基准显示,来自 JavaScript 的调用的 CPU 时间从每 1 万次绘制约 0.5 毫秒减少到每 1 万次绘制约 0.3 毫秒,性能提升了 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 更新

改进错误消息

现在,系统不会再舍弃无效对象的描述符标签,因此您可以在错误消息中看到这些标签。请参阅问题 dawn:1771

为 Node.js 添加了缺少的 API

现在,已为 Node.js 实现 GPUAdapter::requestAdapterInfo()GPUBuffer::getMapState() 方法。请参阅问题 dawn:1761

WebGPU 的新变化

WebGPU 新变化系列中涵盖的所有内容的列表。

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