7

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

有人知道更多吗?微软这样做了吗?还是 gfx 卡供应商特定的?

编辑

Thnx 已经给出了答案(Ferrucio、Torlack 和 Rob Walker),但我的问题尚未得到解答。我们在这里讨论的是填充矩形。可能是最简单的优化功能:只需将几个坐标发送到 GPU 并让它撕裂。然而,它总是在 CPU 端实现。到目前为止,答案让我相信 NVidia 终于看到了曙光(经过 10 多年)并加速了 GDI。并且没有关于这个的公告?根本找不到这方面的信息。我的内部客户问我有关图形加速的问题,我只能说“好吧,我们很幸运”。

编辑2

It does seem like it is driver related according to the different answers. So, then NVidia has made crappy GDI drivers for its workstation cards for years. It really was an accepted fact within this company that GDI was not accelerated and all the tests confirmed this.

4

5 回答 5

7

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

如果某个特定功能没有在硬件中实现,那么驱动程序就没有必要对该功能进行软件实现,因为 GDI 可能会做得更好。GDI 针对性能进行了极好的优化。

随着更多功能在硬件中实现,这些功能不仅性能更好,而且 GDI 要做的工作也减少了,从而减少了用于图形的 CPU 时间。

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

于 2008-09-26T20:42:20.680 回答
5

GDI was accelerated for quite awhile. Far as I recall it did depend on your hardware and drivers to some extent. Why you've seen such a jump in performance only recently seems odd.

However, don't get too happy - GDI hardware acceleration is no longer supported in Vista. The new desktop composition engine doesn't support it. However, in Vista you do gain fast moving of windows since content doesn't always have to be re-drawn by the application (and no tearing I think?).

于 2008-10-06T13:10:40.103 回答
2

在某种程度上,GDI一直在加速。甚至在旧的Win31时代我记得买卡(Number9)的主要卖点是GDI的硬件加速。

于 2008-09-26T20:32:00.987 回答
1

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

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

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

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

于 2008-09-27T01:27:02.820 回答
1

Vista 有一个新的显示驱动架构,它可以提供一个显着提高性能的机会。您是否在比较硬件/操作系统组合?

于 2008-09-26T20:39:03.840 回答