26

DirectX ゲームをプログラミングしていますが、Optimus ラップトップで実行すると Intel GPU が使用され、パフォーマンスが低下します。コンテキスト メニューを使用するか、実行可能ファイルの名前を bf3.exe またはその他の有名なゲーム実行可能ファイル名に変更して NVIDIA GPU を強制すると、パフォーマンスは期待どおりになります。
明らかに、どちらもゲームを再配布する必要がある場合の解決策として受け入れられるものではありません。ラップトップで NVIDIA GPU を使用するようにプログラムで強制する方法はありますか?

DirectX を使用してアダプター (IDirect3D9::GetAdapterCount、IDirect3D9::GetAdapterIdentifier) を列挙しようとしましたが、うまくいきません: 1 つの GPU (使用中のもの) しか報告されていません。

4

2 に答える 2

5

http://www.nvidia.com/object/LO_optimus_whitepapers.htmlにあるOptimus のホワイトペーパーでは、GPU への切り替えが行われる前に何が必要かについて正確には不明です。ホワイトペーパーによると、DX、DXVA、および CUDA 呼び出しが検出され、GPU がオンになります。さらに、この決定は NVIDIA が管理するプロファイルに基づいており、もちろん、あなたのゲーム用のプロファイルはまだ存在しません。

試してみるべきことの 1 つは、たとえば への CUDA 呼び出しを行うことcuInit(0);です。DX や DXVA とは対照的に、Intel 統合グラフィックスがそれを処理する方法がないため、GPU への切り替えを強制する必要があります。

于 2012-05-11T03:37:34.770 に答える