2016-09-02 2 views
0

私のマシンに2つの別個のグラフィックスカード(2x NVS 315)と3つのモニターが接続されています(1つのカードで2つのモニター、もう一方のカードでは1つのモニター)。PixiJSとのWebGLとGPUの親和

私のPixiJSコードが複数のブラウザウィンドウ上で並行して実行されているときのパフォーマンスを確認するために、私は各モニタに1つのChromeウィンドウを開きました。

私の驚いたことに、プライマリスクリーン(GPU#1)を処理しているGPUは、他のGPU(GPU#2)が約40%の使用率を保ちながら、ほとんどの作業(実際には100%の使用)を行っていました。これは、GPU#2に接続されたモニタ上でのみブラウザウィンドウを実行しても、まだ当てはまりました。 GPU#2は、ブラウザウィンドウが付属のモニタにレンダリングされたときに、GPU#2がすべての作業を行うことが期待されていました。 GPU#1は70%の使用率で、GPU#2は40%の使用率であったのは明らかです。

正直言って、これはPixiJSの問題ではなく、むしろChrome/WebGL/OpenGLの問題です。

次に、ウィンドウモードとフルスクリーンの両方で動作する他のOpenGLゲームでいくつかの実験を行い、同じ動作を見ました。これは、プライマリ画面に関連付けられたGPUが常にほとんどの作業を行うようです。

私はここで、この動作の可能な説明を見た:https://superuser.com/questions/731852/how-is-gpu-affinity-decided-in-a-multi-gpu-configuration#comment939363_731852

は、GPUの親和性を指定するためのWebGL/PixiJSのいずれかの方法はありますか?

答えて

1

私の知る限りではありません。

GPUを切り替えるアプリはごくわずかです。それらのほとんどすべてがプライマリGPUを使用します(デフォルト/最初のように)。そのGPUでレンダリングが行われ、結果が他のGPUに転送されて画面に表示されます。マイクロソフトでは、ウィンドウが主にどの画面であるかを確認してGPUを切り替える方法のいくつかの例を示していますが、私が知っているアプリケーションはほとんど使用していません。最高でも、フルスクリーンになるいくつかのゲームは、各スクリーンに正しいGPUを使用します。