c – 相同的Direct2D应用程序在“较慢”的机器上表现更好

我写了一个显示一定数量图形的Direct2D应用程序.

当我运行此应用程序时,在我的笔记本上显示700,000个图形元素大约需要4秒钟:

Intel Core i7 CPU Q 720 1.6 GHz
NVIDIA Quadro FX 880M

根据Direct2D MSDN page

Direct2D is a user-mode library that is built using the Direct3D 10.1
API. This means that Direct2D applications benefit from
hardware-accelerated rendering on modern mainstream GPUs.

我期待相同的应用程序(没有任何修改)应该在具有更好规格的不同机器上表现更好.所以我在台式电脑上试了一下:

Intel Xeon(R) CPU 2.27 GHz
NVIDIA GeForce GTX 960

但是显示相同的图形(相同数量和类型的元素)需要5秒(1秒多).

我想知道它是如何可能的,原因是什么.

最佳答案 没有测量就不可能肯定地说.但是,我的直觉告诉我melak47是正确的.不乏GPU加速,缺乏带宽.集成GPU可以访问与CPU相同的内存.他们可以跳过必须通过总线将位图和绘图命令传输到GPU的专用图形存储器的步骤.

主要是2D工作负载,任何GPU都将花费大部分时间等待内存.在您的情况下,集成GPU具有优势.我怀疑你感觉到的是额外的第二个,是你的GeForce等待主板总线上的图形.

但是,你可以profile并启发我们.

点赞