Несколько видеокарт 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