What's WebGPU 新功能 (Chrome 117 版)

François Beaufort
François Beaufort

未設定頂點緩衝區

GPURenderPassEncoderGPURenderBundleEncoder 上將 null 而非 GPUBuffer 傳遞至 setVertexBuffer(),即可在特定的槽中取消設定先前設定的頂點緩衝區。請參閱問題 dawn:1675

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

取消設定繫結群組

GPURenderPassEncoderGPURenderBundleEncoder 上將 null 而非 GPUBindGroup 傳遞至 setBindGroup(),即可在特定的插槽中取消先前設定的繫結群組。請參閱問題 dawn:1675

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

在裝置遺失時,靜默處理從非同步管道建立作業所產生的錯誤

GPUDevicecreateComputePipelineAsync()createRenderPipelineAsync() 方法會傳回 promise,在管道建立完成後解析。從現在起,當 GPUDevicelost 時,系統會將來自建立非同步管道的錯誤視為無聲,以盡可能讓遺失的裝置正常運作。請參閱 dawn 問題:1874

SPIR-V 著色器模組建立更新

使用 createShaderModule() 建立 SPIR-V 著色器模組現在會擲回 TypeError,除非您使用「Unsafe WebGPU Support」flag 執行 Chrome,因為 SPIR-V 並非 WebGPU 規格的一部分。在這個異動生效前,使用 SPIR-V 會導致系統產生 GPUInternalError。請參閱 變更 chromium:4711911

改善開發人員使用體驗

針對可讀寫儲存體緩衝區和只寫儲存體紋理繫結,改善了頂點著色器中繫結群組版面配置繫結的驗證錯誤訊息。請參閱 issue dawn:1883

使用自動產生的版面配置快取管道

使用 createRenderPipeline({ layout: "auto" }) 建立的管道現在可充分運用 Chrome 中的快取機制。這表示這些管道將更有效率地建立,並且使用較少的記憶體。請參閱問題 dawn:1933

黎明更新

wgpu::RequestAdapterOptionsBackendType 現在是 wgpu::RequestAdapterOptions 的一部分,可讓應用程式在取得轉接程式時,更輕鬆地要求特定後端。請參閱以下範例和dawn:1875 發行版本。

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

我們已為 Node.js 實作了幾種額外方法。請參閱變更 dawn:142465

webgpu.h C API 已將布林值類型從 stdbool 變更為 WGPUBool,也就是 uint32_t。這項變更是為了確保 API 在 C 和 C++ 中具有等同的 ABI

這份文件僅涵蓋部分重點。請查看完整的修訂版本清單

WebGPU 新功能

以下是「WebGPU 最新消息」系列文章中涵蓋的所有內容。

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