【发布时间】:2010-09-13 14:16:14
【问题描述】:
勾勒出这个问题的背景:在工作中,我们使用 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
根据不同的答案,它似乎与驱动程序相关。因此,NVidia 多年来一直在为其工作站卡制作糟糕的 GDI 驱动程序。 GDI 没有加速是这家公司公认的事实,所有测试都证实了这一点。
【问题讨论】:
-
我不同意收盘。 GDI 使用非常广泛,因此它的性能是相关的,即使答案恰好与一个非常具体的问题相关。
-
尽管这个问题现在已经有 2.5 年的历史了,但我只想补充一点,我也不同意结束。对于许多正在编写图形代码的人来说,这是一个潜在有用的问题。
-
@reinierpost:您现在有足够的声望投票支持重新提出问题 - 请注意,尽管作者本人关闭了问题,而不是一见钟情的人群或主持人。我认为事后看来(2008 年 10 月仍然是 SO 的早期阶段......) QBziZ 应该提交并接受 Edit2 作为他自己的总结答案,而不是关闭问题以允许答案以后会有更多的见解。这就是为什么我现在自己投票决定重新开放;)