Как использовать DirectX 9 с несколькими графическими процессорами в Windows7

У меня есть несколько графических карт nVidia (Q2000) в системе Windows 7, без SLI, только один монитор.

Теперь я пытаюсь создать устройство Direct3D9, работающее на определенном графическом процессоре.

Я могу использовать параметр [Адаптер] в IDirect3D9::CreateDevice для выбора графического процессора, но если я не подключу второй монитор к этой карте графического процессора, он не будет работать (если у меня только один рабочий стол в Windows).

Если я нажму кнопку «Обнаружить» на панели управления разрешением, он может создать «поддельный» рабочий стол сбоку от моего основного рабочего стола, и CreateDevice(1, ...) работает хорошо, но это не то, что я хочу.

Для OpenGL это легко, потому что WGL_NV_gpu_affinity может заставить устройство OpenGL работать на втором графическом процессоре только с одним подключенным монитором, одним рабочим столом в Windows.

Интересно, есть ли какой-либо API, который можно использовать для работы Directx 9 как "WGL_NV_gpu_affinity".

Любой намек будет очень признателен. Заранее спасибо!


person El0sua    schedule 25.04.2013    source источник
comment
Вы можете попробовать использовать Direct3D 9 Ex ( IDirect3D9Ex, IDirect3DDevice9Ex ). Это обеспечивает большую гибкость для создания устройства, например, позволяет создавать устройство, когда окна заблокированы (исходный d3d9 не позволяет).   -  person Dave    schedule 26.04.2013


Ответы (1)


IDirect3D9::CreateDevice использует 1-й параметр «Адаптер», который не является графическим процессором, а просто адаптером монитора.

person fdioff    schedule 21.08.2013