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

François Beaufort
François Beaufort

取消設定頂點緩衝區

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

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

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

取消設定繫結群組

null (而非 GPUBindGroup) 傳遞至 setBindGroup() 上的 GPURenderPassEncoderGPURenderBundleEncoder,即可取消設定特定時段中先前設定的繫結群組。請參閱問題 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 issue:1874

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

使用 createShaderModule() 建立 SPIR-V 著色器模組時,除非您使用「Unsafe WebGPU Support」標記執行 Chrome,否則系統會擲回 TypeError,因為 SPIR-V 不屬於 WebGPU 規格。在這項異動前,使用 SPIR-V 會導致系統產生 GPUInternalError。請參閱變更 chromium:4711911

提升開發人員體驗

針對頂點著色器中的繫結群組版面配置繫結,改善讀寫儲存空間緩衝區和僅供寫入的儲存空間紋理繫結的驗證錯誤訊息。請參閱問題 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 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