WebGL和GPU与PixiJS的亲和力

时间:2016-09-02 13:38:31

标签: google-chrome webgl gpu chromium pixijs

我的机器上有两块独立的显卡(2x NVS 315)和三台显示器(一张卡上有两台显示器,另一张卡上有一台显示器)。

为了了解我的PixiJS代码在多个浏览器窗口上并排运行时的效果,我在每个显示器中打开了一个Chrome窗口。

令我惊讶的是,GPU处理我的主屏幕(GPU#1)正在完成大部分工作(真正100%使用),而其他GPU(GPU#2)使用率保持在40%左右。即使在仅连接到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

WebGL / PixiJS中有没有办法指定GPU亲和力?

1 个答案:

答案 0 :(得分:1)

据我所知。

很少有应用切换GPU。几乎所有这些都只使用主GPU(如默认/第一)。在GPU上进行渲染,然后将结果传输到其他GPU,以便将它们放在屏幕上。微软有几个例子说明如何通过检查窗口主要在哪个屏幕上来切换GPU,但我知道使用的应用程序很少。充其量,一些全屏游戏将为每个屏幕使用正确的GPU。