Winapi 如何使用Direct2D的D2D1CreateFactory()在GPU上选择一个组件?

Winapi 如何使用Direct2D的D2D1CreateFactory()在GPU上选择一个组件?,winapi,visual-c++,direct2d,Winapi,Visual C++,Direct2d,我的笔记本电脑有NVIDIA Optimus,所以有一个Intel GPU 但是,我想用英伟达的Digt2D卡来看看我是否能获得更好的性能。 我不想修改英伟达的设置,我想在程序本身中选择适配器。 但是我怎么做呢 在D2D1CreateFactory中找不到允许我选择设备或适配器的选项。。。它似乎总是选择默认的GPU。如何为非默认GPU获取ID2D1Factory?您需要使用D3D10CreateDevice,然后使用D2D和D3D之间的互操作性 Direct3D允许您挑剔设备,而不是D2D。。。

我的笔记本电脑有NVIDIA Optimus,所以有一个Intel GPU

<>但是,我想用英伟达的Digt2D卡来看看我是否能获得更好的性能。 我不想修改英伟达的设置,我想在程序本身中选择适配器。 但是我怎么做呢

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

您需要使用D3D10CreateDevice,然后使用D2D和D3D之间的互操作性


Direct3D允许您挑剔设备,而不是D2D。。。好的。

谢谢,比我想象的要痛苦得多。对于其他打算尝试此功能的人来说,从Intel HD Graphics 4600到NVIDIA GeForce GT 750M,这似乎对性能没有任何好处。@Mehrdad Np。帧速率可能在内部限制为vsync。另外,你真的需要推动D2D来看看两者之间的区别,我认为。。。并使用QueryPerformanceCounter计时绘图速度,无其他功能。附言:听说英特尔4600相当不错!根据我的堆栈跟踪,瓶颈似乎是Direct2D的代码本身——CWidener类,而不是硬件。我只得到20-30%的GPU使用率,基本上我在屏幕上画了数千行。