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

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

WebGPU 的新变化

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

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

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