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 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