GDI得到了加速。 有谁知道这是什么时候发生的?

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

有没有人对此有更多的了解? 微软做了这个吗? 还是gfx卡供应商具体?

编辑

thnx的答案已经(Ferrucio,Torlack和罗布·沃克),但我的问题还没有得到答复。 我们在这里谈论一个填充矩形。 可能是最简单的function优化:只需发送一些坐标到GPU,让它撕裂。 然而它总是在CPU端执行。 到目前为止,答案让我相信,NVidia终于看到了光(超过10年)和加速GDI。 并没有公布这个? 根本没有任何信息可以find。 我的内部客户问我关于graphics加速的问题,我只能说“我们很幸运”。

EDIT2

根据不同的答案,这似乎是司机有关。 那么,NVidia多年来为其工作站卡制作了蹩脚的GDI驱动程序。 GDI没有加速,所有的testing证实了这一点。

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

如果一个特定的功能没有在硬件上实现,那么驱动程序就没有这个功能的软件实现,因为GDI可能会做得更好。 GDI针对性能进行了非常好的优化。

随着更多的功能在硬件上实现,这些功能不仅功能更好,而且GDI的工作也更少,从而减少了花费在图形上的CPU时间。

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

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

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

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

Vista有一个新的显示驱动器架构 ,可以为性能的大幅提升提供机会。 你比较像硬件/操作系统组合?

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

有关维基百科的更多信息,Windows XP的开发 。

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

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