Chrome はすでに WebGPU をサポートしており、デフォルトで有効になります

WebGPU クローム

何年にもわたる開発の後、Chrome チームは WebGPU をリリースします

数日前 Googleが発表 発表されたものを通して WebGPU グラフィックス API のデフォルト サポート および WebGPU シェーディング言語 (WGSL) Chrome 113 ブランチで、2月XNUMX日発売予定。

WebGPUを知らない人は知っておくべき Vulkan、Metal、Direct3D 12 と同様の API を提供 レンダリングや計算などの GPU 側の操作を実行するだけでなく、 シェーダー言語を使用して GPU 側のプログラムを作成できます.

WebGPUについて

概念的には、 Vulkan グラフィックス API が OpenGL と異なるのと同じように、WebGPU は WebGL と異なります。 ただし、WebGPU は特定のグラフィックス API に基づいているのではなく、Vulkan にあるのと同じ低レベルのプリミティブを使用する汎用レイヤーです。 メタルと Direct3D。 WebGPU 組織を低レベルで制御できる JavaScript アプリケーションを提供します。 コマンドを処理して GPU に送信し、関連するリソース、メモリ、バッファ、テクスチャ オブジェクト、およびコンパイル済みグラフィックス シェーダを管理します。 このアプローチにより、オーバーヘッドが削減され、GPU の効率が向上するため、グラフィックス アプリケーションのパフォーマンスが向上します。

WebGPU Web用の複雑な3Dプロジェクトを作成できます Vulkan、Metal、または Direct3D を直接使用するスタンドアロン プログラムと同様に機能しますが、特定のプラットフォームに関連付けられていません。 WebGPU ネイティブ グラフィックス プログラムを移植するための追加オプションも提供します。 WebAssembly でコンパイルすることにより、Web 対応フォームに変換します。 3D グラフィックスに加えて、WebGPU は GPU 側への計算のオフロードとシェーダーの実行に関連する可能性もカバーしています。

WebGPU の主な機能のうち、次の点を強調できます。

  • リソースの分離管理、準備作業、コマンドの送信 GPU に (WebGL では、XNUMX つのオブジェクトが一度にすべてを担当していました)。 XNUMX つの個別のコンテキストが提供されます。テクスチャやバッファなどのリソースを作成するための GPUDevice。 処理および計算段階を含む個々のコマンドをエンコードする GPUCommandEncoder。 GPU 実行キューに渡す GPUCommandBuffer。
    結果は、XNUMX つ以上のキャンバス アイテムに関連付けられた領域にレンダリングすることも、出力なしでレンダリングすることもできます (たとえば、計算タスクの実行時)。 ステージングにより、リソースの作成操作とプロビジョニング操作を、異なるスレッドで実行できる異なるコントローラーに簡単に分離できます。
  • 状態処理への別のアプローチ。 WebGPU は GPURenderPipeline と GPUComputePipeline の XNUMX つのオブジェクトを提供します。これらのオブジェクトを使用すると、開発者によって事前定義されたさまざまな状態を組み合わせることができ、ブラウザーがシェーダーの再コンパイルなどの追加作業でリソースを浪費しないようにすることができます。 サポートされている状態には、シェーダー、頂点バッファーと属性レイアウト、固定グループ レイアウト、ブレンディング、深度とパターン、レンダリング後の出力形式が含まれます。
  • Vulkan のリソース プール ツールによく似たバインディング モデル. リソースをグループにグループ化するために、WebGPU は、コマンドの記録中にシェーダーで使用するために他の同様のオブジェクトにバインドできる GPUBindGroup オブジェクトを提供します。
    このようなグループを作成すると、コントローラは必要な準備アクションを事前に実行でき、ブラウザは描画呼び出し間でリソース バインディングをより高速に切り替えることができます。 リソース バインディングのレイアウトは、GPUBindGroupLayout オブジェクトを使用して事前定義できます。

クロムに加えて、 2020 年 XNUMX 月以降、Firefox で実験的な WebGPU サポートがテストされています。 2021 年 XNUMX 月からは Safari で。 Firefox で WebGPU を有効にするには、about:config で dom.webgpu.enabled フラグと gfx.webgpu.force-enabled フラグを設定する必要があります。

Firefox と Safari でデフォルトで WebGPU を有効にする予定はまだありません。 Firefox および Chrome 用に開発された WebGPU 実装は、WebGPU サポートをアプリケーションに統合するために使用できる Dawn (C++) および wgpu (Rust) という個別のライブラリとして利用できます。

また、WebGL をネイティブに使用して一般的な JavaScript ライブラリに WebGPU サポートを追加する作業が進行中であることも注目に値します。 たとえば、完全な WebGPU サポートは Babylon.js で既に宣言されており、Three.js 、 PlayCanvas 、および TensorFlow.js では部分的に宣言されています。

の実装 WebGPU は、最初は ChromeOS、macOS、および Windows のビルドでのみ有効になります。 Linux と Android の場合、WebGPU サポートは後日有効になります。

最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。


コメントを残す

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

*

*

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