Windows – GDI已经加速.有谁知道这发生的时间?
草拟这个问题的背景:在工作中我们使用Dell Precision工作站.我现在有一台NVidia Quadro FX1700.
我的团队正在为实时数据采集系统开发图形组件. 因此,我们一直在关注图形操作是否不会占用过多的CPU时间.为了快速检查,我们运行了几个测试程序,它们以指定的速率(例如10 fps)绘制场景,我们使用普通的旧任务管理器来查看CPU使用率的位置. 其中一个程序很重视GDI DrawRectangle调用(已填充).这个程序总是占用大约40%的CPU用户时间,但是大约一年左右(这里只是猜测)它只使用大约2-3%的内核时间.很明显,这里正在进行一些硬件加速.事实上,如果我关闭HW-accell,我们将回到最初的40%用户时间. 所有这些当然都是好消息,因为我们已经在考虑转向OpenGL了.年复一年,GDI从未获得硬件加速的好处.直到前一段时间. 有谁知道更多关于这个?微软这样做了吗?或者是gfx-card供应商特定的? 编辑 Thnx已经答案了(Ferrucio,Torlack和Rob Walker),但我的问题还没有得到解答.我们在这里谈论一个填充的矩形.可能是最优秀的功能:只需将几个坐标发送到GPU并让它翻录.但它始终在CPU端实现. EDIT2 根据不同的答案,它似乎与驾驶员有关.因此,NVidia多年来为其工作站卡制作了糟糕的GDI驱动程序.在这家公司中,GDI没有被加速,并且所有的测试都证实了这一点.
GDI通过调用图形设备驱动程序中的各种函数来工作.每个驱动程序都必须实现一组核心功能.其他功能可以由驱动程序实现.如果不是,GDI将自己执行这些功能.
如果某个特定功能没有在硬件中实现,那么驱动程序没有必要执行该功能的软件实现,因为GDI可能会做得更好. GDI针对性能进行了极好的优化. 随着越来越多的功能在硬件中实现,这些功能不仅表现得更好,而且GDI的工作也更少,从而减少了在图形上花费的CPU时间. 也可能是图形卡供应商为了快速将卡推向市场而可能没有实现卡可以执行的所有可能的硬件功能.然后,该驱动程序的更高版本可以实现该功能,从而提高性能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows下用libevent 开发一个echo服务
- windows – 如何启动其他远程桌面用户
- https – 如何在非Windows平台上忽略“System.Net.Http.Cur
- windows-server-2008 – Windows Server 2008 R2映射用户特
- windows – 当有两个物理连接时,哪条路由?
- windows-8 – WinRT XAML中的RadialGradientBrush在哪里?
- windows-server-2008-r2 – 打开来自特定IP地址的所有连接的
- windows-server-2003 – 将Windows 7 64位打印驱动程序添加
- windows-server-2003 – 如何从NTFS驱动器上包含200万个文件
- .net – 如何处理外部DLL中的内存泄漏
- windows-server-2003 – 由于ForestDnsZones的dn
- filesystems – 没有为NTFS使用512字节集群的任何
- windows – 限制对某些USB驱动器的访问
- Windows运行时 – 什么是WinRT语言预测?
- 如何在Windows 10上使用远程桌面执行文件传输?
- windows – IIS工作进程的虚拟内存使用是否超出了
- Windows批量检查变量是否以,以…结尾并包含特定字
- 适用于Windows7 / 2012或更高版本的AOE Windows
- active-directory – 将Windows域控制器引入所有
- windows-server-2008 – 中型服务器平均可以处理