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