WebGPUのサポートはFirefoxのナイトリーバージョンになります

WebGPUヘルプ仕様の統合に関する情報がリリースされました Firefoxのナイトリービルドでは、 3Dグラフィックス処理のためのプログラミングインターフェイスを提供します 概念的にはVulkanAPI、metal、Direct3D 12と同様に、GPU側でコンピューティングを行います。この仕様は、Mozilla、Google、Apple、Microsoft、および組織W3Cによって作成されたワーキンググループのコミュニティ代表によって開発されています。

WebGPUの主な目標は、安全で、便利で、ポータブルで、高性能なソフトウェアインターフェイスを作成することです。 WindowsのDirect3D3、macOSのMetal、LinuxのVulkanなどの最新のシステムグラフィックスAPIによって提供される12Dグラフィックステクノロジーと機能を備えたWebプラットフォームで使用します。

概念的には、 VulkanがOpenGLと異なるのと同じように、WebGPUはWebGLとは異なります。 また、特定のグラフィックAPIに基づくものではなく、一般に、Vulkan、Metal、およびDirect3Dで使用できるものと同じ低レベルのプリミティブを使用するユニバーサルレイヤーです。

Firefoxでは、WebGPUを有効にするために「dom.webgpu.enabled」設定が提供されています 約:config。 CanvasContextのレンダリングに加えて、WebRender構成システム(about:configの「gfx.webrender.all」)を含める必要もあります。

WebGPUの実装は、Rustで記述されたwgpuプロジェクトコードに基づいており、Linux、Android、Windows、およびmacOS上のDX12、Vulkan、およびMetal API上で動作します(DX11およびOpenGL ES 3.0のサポートも開発中です)。

WebGPUについて

WebGPU JavaScriptアプリケーションに低レベルの制御のためのツールを提供します 組織について、 GPUへのコマンドの処理と送信、 関連するリソース、メモリ、バッファ、テクスチャオブジェクト、およびコンパイルされたグラフィカルシェーダーを管理します。 このアプローチは より高性能なグラフィックアプリケーションを可能にします オーバーヘッドを削減し、GPUでの作業効率を向上させます。

WebGPU Web用の完全で複雑な3Dプロジェクトの作成を可能にします Vulkan、Metal、またはDirect3Dと直接通信するスタンドアロンプ​​ログラムよりもパフォーマンスが低下することはありませんが、特定のプラットフォームに関連付けられていません。

さらに ネイティブグラフィックプログラムを移植することにより、追加機能を提供します Webベースのテクノロジーに基づいて機能できる形に WebAssemblyテクノロジーを使用する。

3Dグラフィックスに加えて、 WebGPUは、GPUの隣のコンピューティングを排除することに関連する可能性もカバーしています シェーダー開発のサポート。 シェーダーは、WebGPUシェーダー言語で作成するか、SPIR-V中間形式で指定してから、現在のドライバーでサポートされているシェーダー言語に変換できます。

WebGPU 個別のリソース管理、準備作業、およびコマンド転送を使用します GPUへ(WebGLでは、XNUMXつのオブジェクトが一度にすべてを担当していました)。 XNUMXつの個別のコンテキストが提供されます。テクスチャやバッファなどのリソースを作成するためのGPUDevice。 レンダリングおよび計算段階を含む個々のコマンドをエンコードするGPUCommandEncoder。 GPUでの実行のためにキューに入れるGPUCommandBuffer。

WebGPUとWebGLのXNUMXつ目の違いは、状態を処理するための異なるアプローチです。 WebGPUではXNUMXつのオブジェクトが提案されています。GPURenderPipelineとGPUComputePipelineは、開発者が事前定義した複数の状態を組み合わせることができるため、ブラウザーはシェーダーの再コンパイルなどの追加作業にリソースを浪費しません。 サポートされている状態には、シェーダー、頂点バッファーと属性レイアウト、アタッチされたグループレイアウト、ブレンド、深度とパターン、レンダリング後の出力形式が含まれます。

WebGPUのXNUMX番目の機能はバインディングモデルです、多くの点で Vulkanに存在するリソースをプールする手段に似ています。 リソースをグループにグループ化するために、WebGPUはGPUBindGroupオブジェクトを提供します。このオブジェクトは、コマンドを入力することにより、シェーダーで使用するために他の同様のオブジェクトに関連付けることができます。

このようなグループを作成すると、ドライバーは必要な準備アクションを事前に実行でき、ブラウザーを使用すると、プル呼び出し間でリソースリンクをはるかに高速に切り替えることができます。

出典 https://hacks.mozilla.org/


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。