經過多年的開發,Chrome 團隊宣布,WebGPU 第一版現在已預設在 ChromeOS、macOS 和 Windows 的 Chrome 中提供。詳情請參閱「Chrome 推出 WebGPU」一文。
我們也開始在 MDN 上新增 WebGPU 的完整說明文件。
還有更多功能。
在 importExternalTexture()
中使用 WebCodecs VideoFrame
來源
WebGPU 會公開 API,以便透過 HTMLVideoElement
和 importExternalTexture()
建立不透明的「外部紋理」物件。您可以使用這些物件以有效率的方式取樣影片影格,甚至可以直接從來源 YUV 資料進行 0 次複製。
不過,初始 WebGPU 規格不允許從 WebCodecs VideoFrame
物件建立 GPUExternalTexture
物件。對於已使用 WebCodecs 且想在影片處理管道中整合 WebGPU 的進階影片處理應用程式而言,這項功能非常重要。目前討論內容位於 gpuweb/gpuweb#1380 問題中。
啟用這項功能
根據預設,Chrome 中不會啟用這項功能,但您可以透過明確啟用這項功能,在 Chrome 113 中進行實驗。您可以在本機啟用 chrome://flags/#enable-webgpu-developer-features
中的「WebGPU 開發人員功能」旗標,啟用此功能。
為讓所有應用程式訪客都能使用這項功能,我們目前正在進行來源測試,並已設定在 Chrome 118 (2023 年 12 月 8 日) 結束。如要參與試用,請註冊並在 HTML 或 HTTP 標頭中加入含有來源試用權杖的中繼標記元素。詳情請參閱「開始使用原點試驗」一文。
程式碼範例
// Access the GPU device.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
// Create VideoFrame from HTMLVideoElement.
const video = document.querySelector("video");
const videoFrame = new VideoFrame(video);
const texture = device.importExternalTexture({ source: videoFrame });
// TODO: Use texture in bind group creation.
請查看使用 WebCodecs 上傳影片實驗範例,瞭解如何使用這項功能。
WebGPU 新功能
以下是「WebGPU 最新消息」系列文章中涵蓋的所有內容。
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 進行著色器編譯
- 在運算和算繪階段中執行時間戳記查詢
- 著色器模組的預設進入點
- 支援以顯示器-p3 做為 GPUExternalTexture 色彩空間
- 記憶體堆積資訊
- Dawn 更新
Chrome 120
Chrome 119
Chrome 118
Chrome 117
Chrome 116
- WebCodecs 整合
- GPUAdapter
requestDevice()
傳回的遺失裝置 - 如果呼叫
importExternalTexture()
,請保持影片播放流暢 - 規格相容性
- 改善開發人員體驗
- Dawn 更新