ユーザーのビデオカードを選択する正しい方法は?


8

私のゲームはDirectX 10を使用していますが、私のゲームがグラフィックスカードで取得されないというユーザーからの報告がありました。代わりに、統合されたIntelカードで実行することを選択し、パフォーマンスを台無しにします。これはWindows 8に関連している可能性があります。モバイルカードに関連している可能性もあります。

これまで、DirectXが独自のアダプターを選択できるように、アダプターを指定せずにDirectX 10デバイスを作成してきました(これまでのすべての例/デモで見たように)。どうやら私はそれを変えなければならないだろう。

利用可能なすべてのアダプタを実行し、専用メモリの量が最も多いものを選択する関数をすでに持っています。それは問題を修正するためにうまく機能しますが、それは一般的に正しいですか?

残念ながら、この問題の影響を受けるマシンは必要なカードの出力を報告しないため、カードが有効なビデオ出力(つまり、モニターが接続されている)に依存することはできません。

DirectXで使用するアダプターを適切に選択するには、どのアルゴリズムを使用できますか?


あなたが探しているのですか?msdn.microsoft.com/en-us/library/windows/desktop/...

回答:


11

多くの場合、使用可能な専用メモリが最も多いアダプタを選択すると機能する場合がありますが、場合によっては、処理能力が低いGPUの方が専用メモリが多くなり、ゲームが「間違った」アダプタで実行されることがあります。

これは私に反論をもたらします、正しいアダプターは何ですか?最も計算能力の高いものですか?メモリが最も多いものですか?メインディスプレイが付いているものは?消費電力が最も少ないものですか?これらすべての質問は、おそらくユーザーごとに異なる答えを持っています。ラップトップを使用している人は、優れたグラフィックスよりも長いバッテリ寿命を好むかもしれません。誰かが代わりに彼のセカンダリモニター(テレビなど)で再生することを好むかもしれません。

したがって、多くのゲームでは、ユーザーが使用するGPUを決定できます。ほとんどのGPUメーカーはコントロールパネルを備えており、アプリケーションごとにGPUを選択できます。一部のゲームには、ユーザーが優先GPUを明示的に選択できる起動ダイアログがあります。この起動ダイアログは、最初の実行時またはクラッシュ後にのみ表示されることが多いため、優れたリカバリツールとしても機能します。

Nvidia優先GPU選択AMD優先GPU選択Flatout 2優先GPU選択


結局、これが私がしなければならないことだと思います。私はまだここで重要な何かを見逃しています-他のゲームは私のものが失敗する一方で正しいアダプターを選ぶようです-しかし、私が今やるべき最善のことは単にプレイヤーにコントロールを与えることだと思います。
Raptormeat 2014

3
@Raptormeat:ドライバーには通常、既知のゲームのアプリケーションのデフォルトデバイスを選択するために使用する「プロファイル」が含まれています。これは、他のゲームが期待どおりに動作するのに、他のゲームが動作しない理由の1つです。stackoverflow.com/questions/10535950/…のようなハックもありますが、これはNVIDIAでのみ機能します(他のGPUベンダーには同等のものはありません)。
Sean Middleditch 2014

1
別のアプローチは、それぞれにいくつかの代表的なフレーム(スワップチェーンではFlushなくダミーのターゲットを使用)を実行Presentし、最も速く完了する方をデフォルトとして選択することです。ただし、ユーザーがフレームレートを犠牲にしてバッテリー寿命を延ばす可能性があるため、ユーザーが選択できるようにする必要があります。
MooseBoys 2014

3

プレーヤーが使用するビデオカードを選択できるようにします。つまり、オプションメニューのドロップダウンリストを使用します。最高のVRAM、クロック速度などが検出されたGPUを正気なデフォルトとして使用できます。さらに進んで、ゲームを最初に起動したときのデフォルトの「高パフォーマンス」と「省電力」(最低スペックのカードを選択)のどちらかを選択するようプレーヤーに促し、その選択でより具体的にすることができます。オプションメニュー。

これはシンプルなソリューションであり、プレーヤーが不要なビデオカードを選択した場合でも、プレーヤーが迷惑をかけないようにします。間違ったカードを選択した場合でも簡単に変更できるためです。


2

メモリが最も多いアダプタに基づいてアダプタを選択する場合は、インテルHDグラフィックスが使用するメモリの量を正確に検出できない可能性があります。Intel HD Graphicsは2つのメモリバンクにアクセスできます。1つは専用で、もう1つはCPUと共有します。2つのバンクのサイズは、DXGI_ADAPTER_DESC構造にDedicatedVideoMemoryおよびSharedSystemMemoryとして反映されます。他のアダプターとの比較のために、専用のバンクのみを使用することも、両方を使用することもできます。

Intelには、両方のメモリバンクを測定する方法も示すGPU検出サンプルがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.