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

François Beaufort
François Beaufort

取消設定頂點緩衝區

將 null (而非 GPUBuffer) 傳遞至 setVertexBuffer() 上的 GPURenderPassEncoder 或 GPURenderBundleEncoder,即可取消設定特定 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) 傳遞至 GPURenderPassEncoder 或 GPURenderBundleEncoder 上的 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);

裝置遺失時,不要顯示非同步管道建立作業的錯誤

GPUDevice 的 createComputePipelineAsync() 和 createRenderPipelineAsync() 方法會傳回 promise,在管道建立完成時解析。從現在起,當 GPUDevice 為 lost 時,系統會隱藏非同步管道建立作業的錯誤,盡可能讓遺失的裝置正常運作。請參閱 dawn 問題:1874。

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

除非您使用「Unsafe WebGPU Support」(不安全的 WebGPU 支援) 旗標執行 Chrome,否則使用 createShaderModule() 建立 SPIR-V 著色器模組時,系統現在會擲回 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 155-156

Chrome 153-154

Chrome 151-152

Chrome 149-150

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

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