web-dev-qa-db-ja.com

大きなウィンドウでグラフィックが遅くなる(おそらくNvidia PRIME関連、おそらくGLES3)

私はNvidia GTX 1050モバイルを搭載したUbuntu 19.04を使用しており、PPAの最新のnvidia-driver-430を使用しています。

PRIMEプロファイルでは、IntelではなくNvidiaを選択しました。これは認められているようです(OpenGL ES 3.0レンダラー:GeForce GTX 1050とMax-Q Design/PCIe/SSE2)。 nvidia-smiは、GPUに負荷がかかっていることも報告します。

ただし、これは奇妙なところです。3DOpenGLグラフィックスをレンダリングするウィンドウのサイズは、パフォーマンスに大きな影響を与えます。ほとんどの場合(常にではありません!)、サイズが720p以下のウィンドウは、期待どおりのパフォーマンスを発揮し、CPUの負荷は最小限です。ただし、サイズを大きくすると、グラフィックス処理の負荷により、すべて(OS自体も含む)が非常に遅延します。

どういうわけか、インテルのグラフィックスは大きなウィンドウで使用されていると思います。これが発生すると、CPU使用率が大幅に増加するためです。 nvidia-smiでも、GPU-Utilは100%で表示され、プログラムはProcessesタブに表示されますが...

全画面ウィンドウではパフォーマンスが耐えられないので、いくつかの助けに本当に感謝します。

私は主にこれをGodotエンジンの大きな問題として認識しています。 編集:GodotでもGLES3ではGLES2ではなく発生するため、私のシステムではGLES3の問題である可能性があります。

Edit:これは、遅延しきい値を少し超えてウィンドウのサイズを変更してから元に戻したときのCPU使用率の例です https://i.imgur.com/WIZxHqk.png より複雑な3Dシーンでは、ジャンプがはるかに高くなる可能性があります。これが発生すると、FPSはほとんど空のシーンで60以上から10程度に下がります。

そのしきい値は、再起動するたびに、どういうわけか少し異なるようです。

2
kb173

私はついにこれを理解しました:

この問題の直接的な原因は、VRAMがいっぱいだったことです。これは、ウィンドウサイズに特定のしきい値があった理由を説明します。ウィンドウが大きくなりすぎると、VRAMの容量が100%になり、OS全体が遅れます。理にかなっています!

GodotがVRAMをそれほど多く使用したのはなぜですか?何も思いつきません。ただし、Bumblebeeをインストールして、GodotのみをGPUに委任できるようにしました。結局のところ、Bumblebeeのoptirunを使用する場合、VRAMの使用は実際には正常です。

今、Bumblebeeを動作させることはそれ自体で全体の章ですが、ここでの応答は私にとって最も役立ちました: https://bugs.launchpad.net/ubuntu/+source/bumblebee/+bug/175824

tl; dr:どうやら、Nvidia OptimusなしでGPUを使用すると(統合グラフィックスとNvidia GPUの両方を備えたラップトップで)、一部のプログラムは、理由もなく大きくなります。 Primus/Bumblebeeを設定し、optirunを使用すると修正されます。

0
kb173