2017-05-25 3 views
1

私はそれがどのように動作すべきか知っていると思います。私は、860mのインテノカードとインテグレートされたlenovoラップトップを持っています。DirectX 11アプリケーションでグラフィックスアダプタを選択するオプションを与える方法は?

私は両方のGPUと外から自分のアプリケーションを実行することができ、すべてが正常に動作します:選択したGPUは、インデックス0のアダプタとなり、それが出力としてノートパソコンの画面を持っている、など

しかし私がしようとした場合インデックス1のアダプタを使用してください(NVIDIA GPUで実行すると、NVIDIA、すなわちIntelを実行すると、通常はアプリケーションを実行します)、IDXGIOutput :: EnumOutputsは何も見つかりません。設定を適切に表示します。

私は設定をスキップすることを考えていましたが、他のアダプタからの出力を使用していましたが、本当の出力がない状態でアダプタを除外する方法はありません。私のPCにも統合されたカードがありますが、物理的に接続されたモニターがないので、それを使用することはできません。

「グラフィックプロセッサで実行する」コンテキストメニューボタンが正確に何かを見つけようとしましたが、何も見つかりませんでした。

目標は、アプリケーション内でアダプタを選択できるようにすることです。その選択肢は設定ファイルに保存され、再起動後に使用されますが、可能なアダプタをフィルタリングする方法が見つかりません。

+0

私は前にこれを試したと思うし、私が覚えているように、私はそれをすることができませんでした。私は100%確信しているわけではないので、それはハードウェア関連のものだと思うし、フルスクリーンで起動すると自動的にnvidiaカードに切り替わります。また、あなたはnvidiaのコントロールパネルにアクセスし、アプリのパフォーマンスを最大限に設定することができ、常にnvidiaカード上で動作します。 –

+0

ようこそスタックオーバーフロー!あなたの質問を編集して[これまでに行ったコード](http://whathaveyoutried.com)を表示してください。問題を抱えているコードのアウトライン(ただし、好ましくは[mcve])を含める必要があります。次に、特定の問題を解決することができます。 [ask]も読んでください。 –

答えて

1

「異種アダプター」システム(NVIDIA OptimusまたはAMD PowerXPress)があります。これらのソリューションでは、ドライバがデフォルトのアダプタとデバイスの列挙を操作して、使用するカードを制御します。あなたは本当にこのにわたり任意のプログラム制御を持っていませんが、個別のパーツを選択し、ドライバを奨励するあなたのWin32の「クラシック」のデスクトップアプリケーションに何かを注入することができます

// Indicates to hybrid graphics systems to prefer the discrete part by default 
extern "C" 
{ 
    __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; 
    __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1; 
} 
+1

それは本当に動作します。 私はユーザーに選択肢を直接与えることはできません。 とにかく統合されたもので強制起動するとまだ使用されているので、誰かが実際に何をしているのか分かっていれば、それでもやり遂げることができます。私はそれがうまくいくと思う。 返信いただきありがとうございます:) – GameCodeR

関連する問題