WebGPU(Chrome 138)中的新变化

François Beaufort
François Beaufort

发布时间:2025 年 6 月 17 日

用于将缓冲区用作绑定资源的简写

开发者现在可以直接将 GPUBuffer 用作 GPUBindingResource,以便公开给着色器进行绑定。这使得它与其他绑定类型保持一致,并且当大小和偏移量都使用默认值时,其使用方式比 GPUBufferBinding 更简单。请参阅问题 419223794

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTextureView },
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer }, // Same as { buffer: myBuffer }
    { binding: 4, resource: { buffer: myOtherBuffer, offset: 42 },
  ],
});

创建时映射的缓冲区大小要求变更

现在,如果 size 不是 4 的倍数,则在创建将 mappedAtCreation 设置为 true 的缓冲区时会抛出 RangeError。以前,此限制仅通过 GPUValidationError 强制执行。请参阅问题 405883445

myDevice.createBuffer({
  mappedAtCreation: true,
  size: 42,
  usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError

近期 GPU 的架构报告

Nvidia 和 AMD 的最新 GPU 现在在 GPUAdapterInfo 中将其架构分别报告为 "blackwell""rdna4",此外还在 GPU 架构列表中添加了一些其他细节。请参阅问题 417202748

废弃 GPUAdapter isFallbackAdapter 属性

GPUAdapter isFallbackAdapter 属性已废弃。它已被 Chrome 136 中引入的 GPUAdapterInfo isFallbackAdapter 属性取代。请参阅弃用 intent

Dawn 更新

Dawn GLFW 支持 CMake build 中的 Emscripten,让开发者在使用 Emdawnwebgpu 时能够进一步简化 WebGPU 跨平台应用代码。Emdawnwebgpu 会通过浏览器 API 实现最新的标准化 webgpu.h。请参阅更改 dawn:242894

如需查看完整指南,请参阅更新后的使用 WebGPU 构建应用文档。

软件包版本中现在包含“远程”Emdawnwebgpu 端口。Emscripten 4.0.10 及更高版本包含此端口的快照,现在支持外部托管的端口。现在,只需将标志从 emcc -sUSE_WEBGPU 更改为 emcc --use-port=emdawnwebgpu,即可切换到 Emdawnwebgpu。请参阅 Emscripten PR #24303#24220Dawn CL 243214

这仅涵盖了一些主要亮点。查看详尽的提交内容列表

WebGPU 中的新变化

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

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