2014-02-24 45 views
1

我的笔记本电脑有NVIDIA Optimus(所以有一个Intel GPU)。如何使用Direct2D的D2D1CreateFactory()选择GPU?

但是,我想使用NVIDIA的Direct2D卡来查看是否可以获得更好的性能。
(我不想修改NVIDIA设置,我想在程序本身内选择适配器。)

我该怎么做?

我可以在D2D1CreateFactory中找不到选项,允许我选择设备或适配器......它似乎总是选择默认的GPU。如何获得非默认GPU的ID2D1Factory

回答

1

您需要使用D3D10CreateDevice,然后D2DD3D之间的互操作性。

Direct3D可以让你获得挑剔与设备,D2D不是......据我所知。

+0

谢谢,这比我的预期更加痛苦。对于其他计划尝试这一做法的人来说,它似乎并没有从英特尔高清显卡4600到NVIDIA GeForce GT 750M的性能上有所提升。 – Mehrdad

+0

@Mehrdad Np。帧率可能会在内部限制为vsync。另外,你真的需要推动D2D看到两者之间的差异,我认为......并且用QueryPerformanceCounter()来计算绘制速度,没有别的。 * PS:听说Intel 4600相当不错!* – CodeAngry

+0

似乎瓶颈是Direct2D的代码本身(CWidener类,根据我的堆栈跟踪),而不是硬件。我只有20-30%的GPU使用率(基本上,我在屏幕上绘制了数千行)。 – Mehrdad