相同的Direct2D应用程序在“较慢”的计算机上表现更好

时间:2015-09-30 14:33:57

标签: c++ performance directx direct2d

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

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

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

根据Direct2D MSDN page

  

Direct2D是使用Direct3D 10.1构建的用户模式库   API。这意味着Direct2D应用程序将从中受益   现代主流GPU上的硬件加速渲染。

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

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

但显示相同的图形(相同数量和类型的元素)需要5秒钟(1秒钟以上)。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

评论和其他回复中的一些好处。(暂时无法添加评论)
您的结果不会让我感到惊讶,因为您的2个设置之间存在一些差异。

让我们看一下:http://ark.intel.com/fr/compare/47640,43122

遗憾的是,我们无法看到您的Xeon CPU支持的SSE版本。这些通常用于代码优化。我选择的模型是比较好的模型吗? Core-I7中没有集成的GPU,但4核+超线程= 8个线程,2个核心,Xeon没有超线程。
当谈到实时渲染时,Quadro会摇滚。由于你的场景看起来很简单,它可以很好地优化,但只是"也许" - 我猜这里......有经验评论的人可以吗? : - )

所以它并不那么简单。什么似乎是一个更好的gfx卡并不意味着更好的性能肯定。如果你在其他地方遇到瓶颈,你就搞砸了!

差别很小,您必须比较2个设置中的每个元素:CPU,RAM,HDD,GPU,主板与PCI-e和芯片组的类型。

所以再次猜测,需要进行一些测试:)

玩得开心,祝你好运; - )