2008-09-26 78 views
7

为了勾画这个问题的背景:在工作中我们使用Dell Precision工作站。我目前使用的是NVidia Quadro FX1700。 我的团队正在开发实时数据采集系统的图形组件。 因此,我们一直在寻找是否图形操作不占用太多的CPU时间。对于快速检查,我们有几个我们运行的测试程序,它们以指定的速率(例如10 fps)绘制场景,我们使用普通的旧任务管理器来查看CPU使用情况。 其中一个程序在GDI DrawRectangle调用(已填充)上很沉重。这个程序一直用来消耗大约40%的CPU用户时间,但大约一年左右(只是在这里猜测),它只使用大约2-3%的内核时间。很显然,这里正在发生一些硬件加速。事实上,如果我关闭HW-accell,我们又回到原来的40%的用户时间。所有这些当然都是好消息,因为我们已经在考虑去参加OpenGL了。年复一年的GDI从未获得硬件加速的好处。直到前一段时间。GDI已经加速。有谁知道这是什么时候发生的?

有没有人知道更多关于此?微软做到了吗?或者它是gfx卡供应商特定的?

编辑

日Thnx的答案已经(Ferrucio,Torlack和罗布·沃克),但我的问题没有得到解答。我们在这里谈论一个填充矩形。可能是最简单的优化功能:只需向GPU发送几个坐标并让其翻转即可。然而它总是在CPU端实现。 到目前为止,答案让我相信NVidia终于看到了光(超过10年)和加速GDI。并没有公布这个?根本没有信息可以找到。 我的内部客户问我关于图形加速的问题,我只能说“好吧,我们很幸运”。

EDIT2

它似乎像它是根据不同的答案相关的驱动程序。那么,NVidia多年来为其工作站卡制作了蹩脚的GDI驱动程序。这家公司内部确实是一个公认的事实,GDI没有加速,所有的测试都证实了这一点。

+7

我不同意接近。 GDI的使用相当广泛,所以它的性能是相关的,即使答案恰好与一个非常具体的问题有关。 – reinierpost 2010-11-24 08:48:54

+4

尽管现在的问题已经有2.5年了,但我还是补充一点,我也不同意这个结论。对于许多编写图形代码的人来说,这是一个潜在的有用的问题。 – nitro2k01 2011-04-15 04:05:23

+1

@reinierpost:您现在有足够的声望投票重新提出问题 - 请注意,虽然作者自己已经解决了问题,而不是人群或主持人所期望的一见钟情。我想事后看来(2008年10月一直是SO的早期阶段......)QBziZ应该已经提交并接受了* Edit2 *作为他自己的总结答案,而不是为了让答案最终得到更深入的答案而不是结束问题。这就是为什么我投票现在重新打开自己;) – 2012-05-29 07:24:00

回答

2

在某种程度上,GDI一直在加速。即使回到Win31的旧日,我记得买卡(Number9)的主要卖点是GDI的硬件加速。

1

Vista有一个新的display driver architecture这将提供一个显着提高性能的机会。你比较像硬件/操作系统组合?

+0

我测试过的操作系统是XP Service Pack 2. – QBziZ 2008-09-26 23:33:29

7

GDI通过调用图形设备驱动程序中的各种函数来工作。有一个核心的功能,每个驱动程序必须实施。其他功能可由驾驶员执行。如果不是,GDI将自己执行这些功能。

如果一个特定的功能没有在硬件中实现,那么驱动程序就没有必要去执行该功能的软件,因为GDI可能会做得更好。 GDI非常适合性能优化。由于硬件实现的功能越来越多,这些功能不仅性能更好,而且GDI的工作量也更少,从而减少了花费在图形上的CPU时间。

也可能出现这样的情况,即显卡供应商为了快速地将卡推出市场,可能没有实现该卡可以执行的所有可能的硬件功能。然后,该驱动程序的更高版本可能会实现该功能,从而提高性能。

1

许多二维的东西已经加速了一段时间,每个新的主要版本的Windows都改变了显示驱动程序的工作方式。我相信它是在XP中,Windows改造了它的窗口管理器层。很难进行比较,因为XP比任何早期版本更类似于Windows 2000/NT。

一些维基百科上的更多信息,Development of Windows XP

当然,Windows 2000是第一个包含DirectX的基于NT内核的Windows,并且也有一些图形改进。 Windows 2000 (wikipedia)

我不相信在发布之间显示驱动程序模型/ 2D子系统发生了重大变化。所以如果你注意到这样的变化,那很可能是由于nVidia做的事情。

5

GDI加速了一段时间。据我所知,它在一定程度上取决于你的硬件和驱动程序。为什么你看到这样的表现只是最近似乎很奇怪。

但是,不要太高兴 - Vista中不再支持GDI硬件加速。新的桌面组合引擎不支持它。然而,在Vista中,你确实获得了快速移动的窗口,因为内容并不总是需要被应用程序重新绘制(并且我认为没有撕裂)。