2016-11-02 8 views
1

WebGL APIを介して、クライアント上でFirefox(OpenGL、Basic/Cairo、またはD3Dのいずれでも)の合成バックエンドを検出する方法はありますか?私は、OpenGL/D3Dと基本的な合成を区別することに特に関心があります。 WebGL APIを使用できない場合、合成バックエンド(about:support以外)を特定する他の方法はありますか?Firefoxで複合バックエンドを検出する

答えて

2

短い答えはNO で、あなたがWEBGL_debug_renderer_info extensionを使用することができ、少なくともではないChromeのJavaScriptの

から、Firefoxで合成バックエンドを検出することはできません。

なぜFirefoxで利用できず、Chromeで利用できるのかは、重要性、プライバシー、または有用性についての意見の相違があります。

プライバシーに関する問題は、次の例で簡単に説明しています。あなたがGPUを知っているなら、あなたはもう1つのことを知っています。例、GPUをチェックしてください、AMD FirePro D500を参照してください。はいの場合、その人は4000ドルのMac Proを持っていることが分かります。彼らに高価な広告を出す。

有用な点は、多くのwebglデモを正常に実行できますが、Googleマップのような複雑なwebglを実行することができない古いGPUがたくさんあることです。走らせることができないので、走りが遅すぎたり、クラッシュする可能性もあります。「WebGLがラットにぶつかる!」これらのGPUを持つ人々に良いユーザーエクスペリエンスを提供する方法がないGPUを特定することができなくても。

他の提案があります。たとえば、WebGLがサイトのグラフィックス作成の複雑さを判断するために使用できる何らかのパフォーマンスメトリックを持っているとします。残念ながら、本当に有効な指標はありません。すべてのタイプのGPUには長所と短所があります。 1つのGPUは頂点変換では高速ですが、ラスタライズ時には遅くなります。もう一つは不透明なものを速くレンダリングするかもしれないが、半透明のものをレンダリングするのは遅いかもしれない。他の人は、特定の限界を過ぎて遅さを示すだけかもしれません。その上にブラウザベンダーに大きな負担をかけると、ベンチマークをどこかで(リモートで、ユーザーのマシン上で)実行して、そのような指標を提供することになります。言い換えれば、この解決策は考慮されましたが放棄されました。

もう1つのことですが、WEBGL_debug_renderer_infoは、ユーザーのマシンのGPUとドライバ情報を返しますが、実際にブラウザの合成バックエンドの内容を直接伝えるわけではありません。ブラウザがWebGLに何を使用しているかを伝えるだけです。 2は同じである可能性は高いですが。

関連する問題