Chrome 127のWebGPU拡張、AndroidでのOpenGL ESサポートとGPUAdapter情報取得方法の刷新

text: XEXEQ編集部


記事の要約

  • Chrome 127でWebGPUの新機能が追加
  • Android向けOpenGL ESバックエンドのサポート
  • GPUAdapter情報取得方法の変更

Chrome 127のWebGPU拡張機能

Chrome 127では、WebGPUの機能拡張が行われ、特にAndroidデバイスでの互換性が向上した。従来Vulkan 1.1以降をサポートしていないAndroidデバイスでは、WebGPUの利用が制限されていたが、今回のアップデートでOpenGL ESバックエンドを通じてGPUAdapterにアクセスできるようになった。これにより、より多くのAndroidデバイスでWebGPUが利用可能となる。[1]

新機能の利用には、Chromeの設定で[安全でないWebGPUサポート]、[WebGPUのデベロッパー向け機能]、[root権限のないデバイスでコマンドラインを有効にする]の各フラグを有効にする必要がある。さらに、AndroidデバイスでUSBデバッグを有効にし、特定のコマンドを実行してOpenGL ESバックエンドを優先させる設定が必要だ。これらの手順を踏むことで、開発者はより幅広いデバイスでWebGPUアプリケーションのテストと開発が可能となる。

従来のWebGPU Chrome 127のWebGPU
Androidサポート Vulkan 1.1以降のみ OpenGL ESバックエンド追加
GPUAdapter情報取得 requestAdapterInfo()メソッド info属性で同期的に取得
設定要件 通常の設定 特別なフラグ有効化が必要

GPUAdapter情報取得の変更点

Chrome 127では、GPUAdapterの情報取得方法が大きく変更された。従来は非同期のrequestAdapterInfo()メソッドを使用していたが、新たにinfo属性が導入され、同期的に情報を取得できるようになった。この変更により、GPUAdapterの情報へのアクセスが簡素化され、開発者の利便性が向上する。

注目すべき点として、requestAdapterInfo()メソッドはWebGPUの仕様から削除される予定だ。開発者には十分な移行期間が設けられているが、今後のアプリケーション開発では新しいinfo属性の使用を推奨する。この変更により、コードの簡潔さと実行効率の向上が期待できる。

  • info属性による同期的な情報取得が可能に
  • vendorやarchitectureなどの情報が直接アクセス可能
  • requestAdapterInfo()メソッドは今後削除予定
  • 開発者は新しい方法への移行が必要

WebAssemblyとの相互運用性改善

Chrome 127のWebGPU更新では、WebAssemblyとの相互運用性も大幅に向上した。特筆すべき点は、BufferSource引数のサイズ制限が撤廃されたことだ。これにより、setBindGroup()、writeBuffer()、writeTexture()などのメソッドにおいて、2GBを超えるデータの取り扱いが可能となった。

この改善は、大規模なデータセットを扱う3Dグラフィックスやシミュレーションなどの高負荷アプリケーションにとって特に重要だ。開発者はより柔軟にWebGPUとWebAssemblyを組み合わせて使用できるようになり、パフォーマンスの向上と新たな可能性の開拓が期待される。

WebGPUとは

WebGPUとは、Webブラウザ上でGPUを直接制御するための最新のグラフィックスAPIである。主な特徴として、以下のような点が挙げられる。

  • 低レベルなGPUアクセスによる高性能な描画処理
  • WebGLよりも効率的な並列計算処理
  • モダンなGPUアーキテクチャに適した設計
  • クロスプラットフォームでの一貫した動作
  • 3DグラフィックスやGPGPU計算に適している

WebGPUは、WebGLの後継として位置付けられており、より効率的で柔軟なグラフィックス処理を可能にする。現代のウェブアプリケーションの要求に応えるため、複雑な3Dグラフィックスやコンピュートシェーダーの実行、機械学習モデルの高速推論などに活用されている。

WebGPUに関する考察

WebGPUの継続的な機能拡張は、ウェブブラウザ上での高度なグラフィックス処理や並列計算の可能性を大きく広げている。Android端末でのOpenGL ESサポートの追加は、WebGPUの利用可能範囲を拡大し、クロスプラットフォーム開発をより容易にする可能性がある。この変更により、モバイルデバイスでの3Dウェブアプリケーションやゲームの開発が促進されると予想される。

今後の課題としては、WebGPUの安定性と互換性の向上が挙げられる。異なるGPUアーキテクチャやドライバーでの一貫した動作を保証することが重要だ。また、セキュリティ面での懸念も解消していく必要がある。WebGPUの普及に伴い、GPU関連の脆弱性対策やサンドボックス化の強化が求められるだろう。

WebGPUの進化により、ウェブ開発者にとってはより高度なグラフィックス処理や計算集約型アプリケーションの開発が可能となる。特に、機械学習や科学技術計算の分野での応用が期待される。一方で、従来のWebGL技術との互換性や移行の容易さも課題となるかもしれない。開発者コミュニティとブラウザベンダーの協力が、これらの課題解決の鍵を握るだろう。

ユーザーにとっては、WebGPUの進化によりウェブブラウザ上でより豊かで高性能なアプリケーションが利用可能になる。ただし、ハードウェアの多様性や古いデバイスとの互換性の問題が残る可能性がある。ブラウザベンダーやハードウェアメーカーは、幅広いデバイスでのWebGPUサポートを進めることで、この技術の恩恵を多くのユーザーに届けることができるだろう。

参考サイト

  1. ^ Chrome for Developers. 「WebGPU の新機能(Chrome 127) | Blog | Chrome for Developers」. https://developer.chrome.com/blog/new-in-webgpu-127?hl=ja, (参照 24-07-24).

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「プログラミング」に関するコラム一覧「プログラミング」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。