Win32:是否有使用硬件加速的替代 GDI32.dll?

发布于 2024-08-28 21:44:00 字数 1220 浏览 8 评论 0原文

有没有人创建了一个利用计算机上可用的硬件加速的 GDI32.dll 版本? gdiplus.dll

从 Windows Vista 开始,GDI 不再是硬件加速的。 (GDI+ 从来都不是硬件加速的)。如果 Microsoft 不修复 GDI(和 GDI+)以便能够在计算机上良好运行:本机应用程序(C++ MFC、Delphi 等)和托管 WinForms 应用程序将永远运行不佳。

虽然我可以将 Direct2D 用于业务应用程序,但我无法控制这样一个事实:开发环境仍然使用数十年的库支持代码创建控件,并假定存在 GDI。


应用程序兼容性:图形设备接口 (GDI)

GDI 基元,例如 LineTo 和 矩形现在在软件中渲染 而不是视频硬件, 大大简化了显示驱动程序。

Windows 和视频内存

在 XP 中,GDI 经过 GPU 加速 不同程度取决于如何 操作系统或设备驱动程序已配置 (有关详细信息,请参阅挂钩与 弃踢)。 在 Vista 中,GDI 未进行 GPU 加速

比较Direct2D 和 GDI

因此,在 Windows Vista 中,GDI DDI 显示驱动程序更改为 仅由微软实施 提供的驱动程序,Canonical Display 司机(CDD)。 GDI 呈现给系统 内存位图。使用了脏区域 更新视频内存纹理 窗口管理器用来 合成桌面。

Has anyone out there created a version of GDI32.dll that takes advantage of hardware acceleration available on the machine? gdiplus.dll?

Starting with Windows Vista, GDI is no longer hardware accelerated. (GDI+ was never hardware accelerated). Without Microsoft fixing GDI (and GDI+) to be able to run well on the computer: native applications (C++ MFC, Delphi, etc), and managed WinForms applications, will continue to run poorly forever.

While i could use Direct2D for business applications, i cannot control the fact that the development environment still creates controls, with decades of library support code, that assumes the presence of GDI.


Application Compatibility: Graphical Device Interface (GDI):

GDI primitives such as LineTo and
Rectangle are now rendered in software
rather than video hardware, which
greatly simplify the display drivers.

Windows And Video Memory

In XP GDI is GPU accelerated to
various degrees depending on how the
OS is configured or the device driver
(for details see Hooking Versus
Punting
).
In Vista, GDI is not GPU accelerated

Comparing Direct2D and GDI

As a result, in Windows Vista, the GDI
DDI display driver was changed to be
only implemented by a Microsoft
supplied driver, the Canonical Display
Driver (CDD). GDI rendered to a system
memory bitmap. Dirty regions were used
to update the video memory texture
which the window manager uses to
composite the desktop.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

狼性发作 2024-09-04 21:44:00

看来Vista是GDI性能史上的一个特例。
下面的两篇文章都表明 GDI 的未来再次光明。

http://msdn.microsoft.com/en-我们/库/ff729480%28VS.85%29.aspx

GDI 在 Windows 上是硬件加速的
XP,并在 Windows 7 上加速
桌面窗口管理器正在运行
并且正在使用 WDDM 1.1 驱动程序。
Direct2D 是硬件加速的
几乎所有 WDDM 驱动程序,无论
是否使用 DWM。在维斯塔上,
GDI 将始终在 CPU 上渲染。

链接

基于实际应用
统计数据,...我们与我们的
IHV 合作伙伴提供的图形
支持司机加速
最常用的 GDI 操作。

It seems that Vista was a special case in the history of GDI performance.
Both articles below show that the future for GDI looks bright again.

http://msdn.microsoft.com/en-us/library/ff729480%28VS.85%29.aspx

GDI is hardware accelerated on Windows
XP, and accelerated on Windows 7 when
the Desktop Window Manager is running
and a WDDM 1.1 driver is in use.
Direct2D is hardware accelerated on
almost any WDDM driver and regardless
of whether DWM is in use. On Vista,
GDI will always render on the CPU.

Link

Based on real-world application
statistics, ... we worked with our
graphics IHV partners to provide
support in their drivers to accelerate
the most commonly used GDI operations.

瑾兮 2024-09-04 21:44:00

嗯,是的,GDI 是“随时随地工作”的用于渲染图形的 API。它对视频驱动程序的要求非常低。每个人很久以前就明白了这一点。过了一段时间,我对 ATI Mach 显卡有了清晰的记忆,这给我带来了无穷无尽的麻烦。这让我有一段时间不再购买 ATI 产品了。

大家在不久之前也正确认识了 DirectX。它在 WPF 渲染模型中得到利用,它完全依赖 DirectX 来完成工作。 Milcore 是垫片名称。在您接受 WPF 编程模型之前,您不会得到它。

Well, yes, GDI is the "it works anywhere anytime" API for rendering graphics. It puts very low demands on the video driver. Everybody got that right a long time ago. Which took a while, I got a distinct memory of a ATI Mach video card that gave me no end of trouble. It stopped me from buying ATI products for quite a while.

Everybody got DirectX right a lesser long time ago too. It is being taking advantage of in the WPF rendering model, it completely relies on DirectX to get the job done. Milcore is the shim name. You won't get it until you buy into the WPF programming model.

っ左 2024-09-04 21:44:00

硬件加速是什么意思?
我的意思是,GDI 除了光栅位块传输之外没有做太多事情,但这些都是硬件加速的。而且,考虑到 Vista 和 Windows 7 的桌面应用程序速度并没有特别慢,但情况仍然如此。

GDI 仍然让视频驱动程序来完成所有繁重的工作,因此如果 GDI 没有硬件加速,那么这是驱动程序供应商的错,而不是 GDI 的错。

What do you mean by hardware acceleration?
I mean, GDI doesn't do a lot other than raster blits, but those were hardware accelerated. And, given that Vista and Windows 7 arn't terribly slower with desktop apps, still are.

GDI still gets the video drivers to do all the heavy lifting, so if GDI isn't hardware accelerated, then its the driver vendors fault, not GDI's.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文