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

黎明更新

Dawn GLFW 支援 Emscripten,可讓開發人員在使用 Emdawnwebgpu 時,進一步簡化 WebGPU 跨平台應用程式程式碼,因為 Emdawnwebgpu 會透過瀏覽器 API 實作最新的標準化 webgpu.h。請參閱變更 dawn:242894

如需完整指南,請參閱更新版的「使用 WebGPU 建構應用程式」說明文件。

套件版本現在已納入「遠端」Emdawnwebgpu 端口。Emscripten 4.0.10 以上版本包含這個端口的快照,現在支援外部代管的端口。切換至 Emdawnwebgpu 的做法,現在只需將標記從 emcc -sUSE_WEBGPU 變更為 emcc --use-port=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