每晚版本的Firefox均提供WebGPU支持

發布有關集成WebGPU幫助規範的信息 在Firefox的每晚版本中,現在 提供用於3D圖形處理的編程接口 在GPU端進行計算,在概念上類似於Vulkan API,metal和Direct3D12。該規範由Mozilla,Google,Apple,Microsoft和由W3C組織創建的工作組的社區代表開發。

WebGPU的主要目標是創建一個安全,方便,便攜式和高性能的軟件界面 可以在具有3D圖形技術的Web平台上使用,並具有現代系統圖形API提供的功能,例如Windows上的Direct3D 12,macOS上的Metal和Linux上的Vulkan。

從概念上講 WebGPU與WebGL的區別與Vulkan與OpenGL的區別相同 而且它不是基於特定的圖形API,而是通用層,通常使用Vulkan,Metal和Direct3D中可用的相同低級基元。

在Firefox中,提供了“ dom.webgpu.enabled”設置以啟用WebGPU 在約:配置。 除了渲染CanvasContext之外,它還需要包含WebRender合成系統(about:config中的“ gfx.webrender.all”)。

WebGPU實現基於用Rust編寫的wgpu項目代碼,並且可以在Linux,Android,Windows和macOS上的DX12,Vulkan和Metal API之上工作(正在開發DX11和OpenGL ES 3.0支持)。

關於WebGPU

網絡GPU 為JavaScript應用程序提供用於底層控制的工具 關於組織, 處理命令並將其傳輸到GPU, 管理相關資源,內存,緩衝區,紋理對象和已編譯的圖形著色器。 這種方法將 支持更高性能的圖形應用 通過減少開銷並提高使用GPU的效率。

網絡GPU 可以為網絡創建完整的複雜3D項目 這些程序的性能不會比直接與Vulkan,Metal或Direct3D通信但與特定平台無關的獨立程序差。

通過移植本機圖形程序提供附加功能 可以基於網絡技術運行的形式 通過使用WebAssembly技術。

除了3D圖形之外, WebGPU還涵蓋了與消除GPU旁的計算相關的可能性 並支持著色器開發。 可以使用WebGPU著色器語言創建著色器或以SPIR-V中間格式指定著色器,然後將其翻譯為當前驅動程序支持的著色器語言。

網絡GPU 使用單獨的資源管理,準備工作和命令傳輸 到GPU(在WebGL中,一個對象同時負責所有事情)。 提供了三個單獨的上下文:GPUDevice,用於創建紋理和緩衝區等資源; GPUCommandEncoder對單個命令進行編碼,包括渲染和計算階段; GPUCommandBuffer排隊等待在GPU上執行。

WebGPU和WebGL之間的第二個區別是處理狀態的不同方法。 WebGPU中提出了兩個對象:GPURenderPipeline和GPUComputePipeline,它們允許組合開發人員預定義的幾種狀態,這使瀏覽器不會在其他工作上浪費資源,例如重新編譯著色器。 支持的狀態包括:著色器,頂點緩衝區和屬性佈局,附加的組佈局,混合,深度和圖案,渲染後輸出格式。

WebGPU的第三個功能是綁定模型,這在很多方面 類似於匯集Vulkan中存在的資源的方法。 為了將資源分組,WebGPU提供了一個GPUBindGroup對象,該對象可以通過鍵入命令與其他類似對象關聯以在著色器中使用。

通過創建此類組,驅動程序可以提前執行必要的準備操作,而瀏覽器則可以更快地在拉動調用之間切換資源鏈接。

來源: https://hacks.mozilla.org/


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。