Android 上的 OpenGL ES 實驗性支援
現在當您在 Chrome for Android 中要求實驗性的 WebGPU 相容性模式時,現在可以從 OpenGL ES 後端存取 GPUAdapter
。如果 Android 裝置不支援 Vulkan 1.1 以上版本,這項功能就特別實用。請參考以下範例和問題 dawn:1545。
// Request a GPUAdapter in compatibility mode
const adapter = await navigator.gpu.requestAdapter({ compatibilityMode: true });
![WebGPU 報告頁面會顯示來自 Android 裝置 OpenGL ES 後端的 GPU Adapter 資訊。](https://developer.chrome.google.cn/static/blog/new-in-webgpu-127/image/opengl-es-android.jpg?authuser=3&hl=zh-tw)
這項功能仍在實驗階段,因此請按照下列步驟操作:
- 啟用下列 Chrome 旗標:「不安全的 WebGPU 支援」、「WebGPU 開發人員功能」和「在未 Root 權限的裝置上啟用指令列」。
- 在 Android 裝置上啟用 USB 偵錯功能。
- 將 Android 裝置連線至工作站,執行
adb shell 'echo "_ --use-webgpu-adapter=opengles" > /data/local/tmp/chrome-command-line'
(優先使用 OpenGL ES 後端而非 Vulkan),然後重新啟動 Chrome。
GPU 轉接程式資訊屬性
您現在可以使用 GPUAdapter info
屬性,以同步方式取得轉接器的識別資訊。先前,如要取得轉接器資訊,呼叫非同步 GPU Adapter requestAdapterInfo()
方法。不過,requestAdapterInfo()
已從 WebGPU 規格中移除,將於今年稍晚在 Chrome 中移除,以便讓網頁開發人員有足夠時間進行必要轉換。請參閱「Chrome 狀態」和「問題 335383516」範例。
const adapter = await navigator.gpu.requestAdapter();
const info = adapter.info;
// During the transition period, you can use the following:
// const info = adapter.info || await adapter.requestAdapterInfo();
console.log(`Vendor: ${info.vendor}`); // "arm"
console.log(`Architecture: ${info.architecture}`); // "valhall"
WebAssembly 互通性改善
為了因應直接傳遞至 WebGPU 的 WebAssembly 堆積,下列 BufferSource 引數的大小不再限制在 2 GB:setBindGroup()
中的 dynamicOffsetsData
、writeBuffer()
中的來源 data
,以及來源 data
固定 writeTexture()
。請參閱問題 339049388。
改善指令編碼器錯誤
指令編碼器引發的部分驗證錯誤現在已經改善。舉例來說,如果在算繪通道仍開啟時嘗試啟動運算通道,就會導致以下錯誤。
Command cannot be recorded while [CommandEncoder (unlabeled)] is locked and [RenderPassEncoder (unlabeled)] is currently open.
at CheckCurrentEncoder (..\..\third_party\dawn\src\dawn\native\EncodingContext.h:106)
此項說明錯誤原因,但未指出是哪項呼叫實際上導致驗證錯誤。下列錯誤顯示改良版訊息,其中包含觸發錯誤的指令。請參閱變更 192245。
Command cannot be recorded while [CommandEncoder (unlabeled)] is locked and [RenderPassEncoder (unlabeled)] is currently open.
- While encoding [CommandEncoder (unlabeled)].BeginComputePass([ComputePassDescriptor]).
日出最新消息
webgpu.h C API 不再公開 wgpuSurfaceGetPreferredFormat()
,也就是 Dawn 的 wgpu::Surface::GetPreferredFormat()
的 C。請改用 wgpu::Surface::GetCapabilities()
取得支援格式的清單,然後使用 formats[0]
取得此途徑偏好的紋理格式。與此同時,呼叫 wgpu::Surface::GetPreferredFormat()
會發出淘汰警告。請參閱問題 290。
現在呼叫 wgpu::Surface::GetCapabilities()
時,可透過 wgpu::SurfaceCapabilities::usages
使用介面支援的紋理使用方式。其中應一律包含 wgpu::TextureUsage::RenderAttachment
。請參閱問題 301。
這只涵蓋部分重點功能。請參閱完整的修訂版本清單。
WebGPU 新功能
WebGPU 最新消息系列中所有包含的清單。
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
Chrome 117
Chrome 116
- WebCodecs 整合
- GPUAdapter 傳回遺失的裝置
requestDevice()
- 如果呼叫
importExternalTexture()
,讓影片播放順暢 - 規格符合性
- 改善開發人員體驗
- Dawn 更新