【发布时间】:2013-04-25 17:04:03
【问题描述】:
我在 Windows 7 系统上有多个 nVidia GPU Card (Q2000),没有 SLI,只有一个显示器。
现在我要做的是让 Direct3D9 设备在特定 GPU 上运行。
我可以使用IDirect3D9::CreateDevice 中的 [Adapter] 参数来选择 GPU,但除非我在该 GPU 卡上连接第二台显示器,否则它将无法工作(如果我在 Windows 上只有一个桌面)。
如果我单击“分辨率控制面板”中的“检测”按钮,它可以在我的主桌面一侧制作一个“假”桌面,并且 CreateDevice(1, ...) 运行良好 - 但这不是我的想要。
对于 OpenGL,这很容易,因为 WGL_NV_gpu_affinity,它可以使 OpenGL 设备在第二个 GPU 上运行,只连接一个显示器,一个 Windows 上的桌面。
我想知道是否有任何 API 可以用于 Directx 9 作为“WGL_NV_gpu_affinity”工作。
任何提示将不胜感激。提前致谢!
【问题讨论】:
-
您可以尝试使用 Direct3D 9 Ex ( IDirect3D9Ex, IDirect3DDevice9Ex )。它为创建设备提供了更大的灵活性,例如它允许在窗口被锁定时创建设备(原始 d3d9 不允许)。
标签: windows direct3d multiscreen multi-gpu