См. Следующий код, я запускаю его на ноутбуке с двумя графическими процессорами, принудительно запускаю тестовую программу с помощью карты nvidia в панели управления nvidia.Указатель, возвращаемый GetDirect3D
methord, отличается от исходного указателя pD3D
, поэтому, когда я получаю некоторую информацию об адаптере, используя GetAdapterIdentifier
или около того, я получаю неверную информацию, например, Identifier.Description
возвращает строки Intel, абсолютно неtrue.
Нет проблем, если я принудительно заставлю программу использовать карту Intel или на других платформах только с одним GPU.Хотите знать почему?
HRESULT hr;
IDirect3D9* pD3D = Direct3DCreate9(SDK_VERSION);
hr = pD3D->CreateDevice(xxxx, &pd3dDevice);
IDirect3D9* pParentD3D = NULL;
hr = pd3dDevice->GetDirect3D(&pParentD3D);