發布日期:2025 年 8 月 27 日
裝置要求會耗用配接器
根據 WebGPU 規格,成功要求裝置後,配接器會標示為「已耗用」。因此,後續使用相同轉接程式的任何 requestDevice()
呼叫,現在都會導致遭拒的 Promise。先前,這些呼叫會傳回建立時遺失的裝置。請參閱問題 415825174。
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
await adapter.requestDevice(); // Fails because adapter has been consumed.
在紋理檢視畫面中使用紋理的簡寫
現在可以直接使用 GPUTexture 做為 GPUBindingResource,向著色器公開以進行繫結。此外,為提升人體工學,也可以做為 GPURenderPassColorAttachment view
、GPURenderPassColorAttachment resolveTarget
和 GPURenderPassDepthStencilAttachment view
使用。相較於使用 GPUTextureView 取得預設檢視區塊,這種做法更簡單。請參閱 問題 425906323。
const bindGroup = myDevice.createBindGroup({
layout: myPipeline.getBindGroupLayout(0),
entries: [
{ binding: 0, resource: mySampler },
{ binding: 1, resource: myTexture }, // Same as myTexture.createView()
{ binding: 2, resource: myExternalTexture },
{ binding: 3, resource: myBuffer },
],
});
WGSL textureSampleLevel 支援 1D 紋理
現在可以使用 textureSampleLevel()
取樣 1D 紋理,與 2D 紋理保持一致。這項功能可讓您從頂點著色器取樣 1D 紋理,先前只能從片段著色器使用 textureSample()
執行這項操作。請參閱 問題 382514673。
淘汰 bgra8unorm 唯讀儲存空間紋理用法
使用 "bgra8unorm"
格式搭配唯讀儲存紋理的做法已遭淘汰。WebGPU 規格明確禁止此行為,而 Chrome 先前允許此行為是錯誤,因為這個格式僅供寫入存取,且無法移植。請參閱問題 427681156。
移除 GPUAdapter isFallbackAdapter 屬性
如先前公告所述,GPUAdapter 的 isFallbackAdapter
屬性現已移除。Chrome 136 推出的 GPUAdapterInfo isFallbackAdapter
屬性已取代這項屬性。請參閱移除意圖。
黎明更新
wgpuInstanceGetWGSLLanguageFeatures()
函式用於取得例項支援的 WGSL 語言功能清單。先前會傳回 WGPUStatus
值。由於不會失敗,因此已更新為不傳回值。請參閱問題 429178774。
如果介面沒有目前的紋理,wgpuSurfacePresent()
函式現在會傳回 WGPUStatus
錯誤。請參閱問題 425930323
有了這項新 wgpu::InstanceFeatureName::MultipleDevicesPerAdapter
功能,轉接器就能建立多個裝置,而不會「耗用」裝置。請參閱問題 415825174。
dump_shaders_on_failure
裝置切換按鈕可讓您僅在失敗時傾印著色器,以進行偵錯。這項功能僅適用於 D3 後端,但未來可能會擴展至其他後端。請參閱問題 429187478。
Vulkan 後端已進行多項變更,可減少提交算繪通道時的負擔,特別是提升行動 GPU 的效能。例如:快取 VkFramebuffer。
這僅涵蓋部分重點。請參閱完整的提交清單。
WebGPU 最新消息
「WebGPU 最新消息」系列涵蓋的所有主題清單。
Chrome 140
- 裝置要求會耗用轉接程式
- 使用紋理檢視畫面時,可使用紋理的簡短形式
- WGSL textureSampleLevel 支援 1D 紋理
- 淘汰 bgra8unorm 唯讀儲存空間紋理用法
- 移除 GPUAdapter isFallbackAdapter 屬性
- Dawn 更新
Chrome 139
Chrome 138
Chrome 137
- 使用紋理檢視區塊進行 externalTexture 繫結
- 複製緩衝區,但不指定位移和大小
- WGSL 工作群組 UniformLoad,使用指標指向原子
- GPUAdapterInfo powerPreference 屬性
- 移除 GPURequestAdapterOptions compatibilityMode 屬性
- Dawn 更新
Chrome 136
Chrome 135
- 允許使用空值繫結群組版面配置建立管道版面配置
- 允許檢視區塊超出算繪目標的邊界
- 在 Android 上更輕鬆存取實驗性相容模式
- 移除 maxInterStageShaderComponents 限制
- Dawn 更新
Chrome 134
Chrome 133
- 額外的 unorm8x4-bgra 和 1 元件頂點格式
- 允許使用未定義的值要求不明限制
- WGSL 對齊規則變更
- 使用 discard 提升 WGSL 效能
- 針對外部紋理使用 VideoFrame displaySize
- 使用 copyExternalImageToTexture 處理方向非預設的圖片
- 提升開發人員體驗
- 使用 featureLevel 啟用相容模式
- 清除實驗性子群組功能
- 淘汰 maxInterStageShaderComponents 限制
- Dawn 更新
Chrome 132
- 紋理檢視畫面使用方式
- 32 位元浮點紋理混合
- GPUDevice adapterInfo 屬性
- 以無效格式設定畫布內容時,會擲回 JavaScript 錯誤
- 紋理的篩選取樣器限制
- 擴大子群組實驗
- 提升開發人員體驗
- 實驗性支援 16 位元標準化紋理格式
- Dawn 更新
Chrome 131
- 在 WGSL 中裁剪距離
- GPUCanvasContext getConfiguration()
- 點和線條圖元不得有深度偏差
- 子群組的內建包容性掃描功能
- 實驗性支援多重繪圖間接
- 著色器模組編譯選項「嚴格的數學」
- 移除 GPUAdapter requestAdapterInfo()
- Dawn 更新
Chrome 130
Chrome 129
Chrome 128
Chrome 127
Chrome 126
Chrome 125
Chrome 124
Chrome 123
Chrome 122
Chrome 121
- 在 Android 上支援 WebGPU
- 在 Windows 上使用 DXC 取代 FXC,編譯著色器
- 運算和算繪傳遞中的時間戳記查詢
- 著色器模組的預設進入點
- 支援將 display-p3 做為 GPUExternalTexture 色彩空間
- 記憶體堆積資訊
- Dawn 更新
Chrome 120
Chrome 119
Chrome 118
copyExternalImageToTexture()
支援 HTMLImageElement 和 ImageData- 實驗性支援讀寫和唯讀儲存空間紋理
- Dawn 更新
Chrome 117
Chrome 116
- 整合 WebCodecs
- GPUAdapter
requestDevice()
傳回的遺失裝置 - 如果呼叫
importExternalTexture()
,請確保影片播放流暢 - 規格一致性
- 提升開發人員體驗
- Dawn 更新
Chrome 115
Chrome 114
Chrome 113
- 在
importExternalTexture()
中使用 WebCodecs VideoFrame 來源