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 屬性取代。請參閱淘汰意圖

黎明更新

CMake 建構作業的 Dawn GLFW 支援 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 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