WebGPU 的新变化 (Chrome 114)

François Beaufort
François Beaufort

优化 JavaScript

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

以下 Microbenchmark 显示,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:1771

添加了缺失的 Node.js API

现已针对 Node.js 实现了 GPUAdapter::requestAdapterInfo()GPUBuffer::getMapState() 方法。请参阅问题 dawn:1761

WebGPU 的新变化

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

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113