DirectX9 множество видео карти

има отговор за DirectX11, но DirectX9 е различен.

Първият параметър на IDirect3D9::CreateDevice и IDirect3D9Ex::CreateDevice е UINT Adapter, трябва да бъде число между 0 и едно по-малко от резултата на IDirect3D::GetAdapterCount

но GetAdapterCount връща 1, дори моят лаптоп има две видео карти (едната е Intel HD Graphics 3000, другата е AMD HD7400M)

Мога да получа втората видеокарта чрез IDXGIFactory::EnumAdapters в DirectX11, така че как мога да стигна до нея в DirectX 9?


person Clones1201    schedule 24.08.2014    source източник
comment
Използвайте IDIrect3D::GetAdapterIdentifier, за да разберете кой адаптер във вашата система не изброява и след това проверете тези настройки и драйвери.   -  person Chuck Walbourn    schedule 25.08.2014
comment
проблемът е, че IDXGIFactory може да изброи правилно всички адаптери   -  person Clones1201    schedule 25.08.2014
comment
Да, но това вероятно е драйвер или настройка на драйвера, който държи Direct3D 9 устройството за един от вашите адаптери скрито. Този, който не се показва, е този, който се крие. Можете също да опитате DxCapsViewer в Windows 8.x SDK (включен с VS 2012 или VS 2013) или наследения DirectX SDK, за да видите дали дадено устройство се показва под DXGI устройства, но не се показва под Direct3D 9 устройства. Също така имайте предвид, че концепцията на Direct3D 9 за адаптер е малко по-различна от DXGI: Един физически графичен процесор с два монитора е 2 адаптера в Direct3D 9, но един адаптер с 2 изхода в DXGI.   -  person Chuck Walbourn    schedule 25.08.2014
comment
възможно ли е два физически графични процесора с един монитор да са само един адаптер (вторият графичен процесор е скрит) в Direct3D 9? Вече зададох висока производителност в центъра за управление на драйвери на AMD.   -  person Clones1201    schedule 26.08.2014
comment
SLI/Crossfire платформите могат да бъдат настроени по този начин, да.   -  person Chuck Walbourn    schedule 26.08.2014