GMA 500集成显卡上WPF性能缓慢

12

我的团队正在开发WPF应用程序,以部署在Intel Atom Z530 netbook硬件平台上。Intel Atom Z530配备了Intel GMA 500集成显卡,其具有PowerVR SGX 535 GPU核心。PowerVR SGX 535 GPU核心正是iPad的A4芯片组所使用的完全相同的图形核心。

我的问题是:为什么在PowerVR SGX 535图形下,WPF速度如此缓慢?

实际上,我们关闭了WPF应用程序的硬件加速,以获得更好的性能(屏幕到屏幕的转换、对话框转换、2D图形交互)。而iPad技术堆栈能够在相同的硬件图形核心下实现更好的UI性能。

感谢您提供任何见解!


我不知道这是否有帮助:您能否尝试使用最新版本的视频驱动程序、DirectX更新并安装.NET 4(即使您正在运行.NET 3.5,它可能会解决一些错误并进行一些更新),以及Win7来查看它是否在此设备上具有更好的性能? - Tony
感谢您的驱动程序评论。我们尝试了英特尔XP GMA 500驱动程序和IEGD驱动程序。两者性能相似。但是,我们发现IEGD驱动程序具有出色的OpenGL性能。 - Bjorn
我听说英特尔声称GMA 500驱动程序存在一个WPF特定的错误,他们没有计划修复。我还听说GMA 500管道对于WPF来说太小了,因为WPF在图形管道上执行所有屏幕布局。GMA 500只期望3D工作负载,并且无法承担所有屏幕渲染的责任。 - Bjorn
你可能有第一条声明的来源吗?谢谢!=) - Jens
3个回答

2
我发现XP上所有的GMA芯片组都有着糟糕的WPF性能。不仅帧率低,而且图形会出现可怕的故障和伪像。表面将变得透明,视频表面会变成一团混乱,鼠标悬停会变得毛刺。
我们的解决方案是通过一个注册表补丁禁用硬件加速,该补丁适用于那些遇到问题的客户。

2
你是否在Windows Embedded Standard 7上运行.Net 4?我发现WPF在Windows 7上比XP运行得更好。
你具体遇到了什么性能问题?
如果是动画,可以尝试使用缓存合成(.Net 4功能)将BitmapCache应用于任何可能会出现动画效果的背景。另外,请确保共享和冻结您使用的所有画笔。
如果是图表,可以降级到DrawingVisuals而不是使用形状或其他更高级别的构造。作为最后的手段,您还可以使用GDI+来绘制WriteableBitmaps。
此外,根据我的经验,双核Atom处理器也可以显著提供更流畅的WPF用户界面。如果可能,请尝试Atom D510或D525。它们消耗更多的电力并产生更多的热量,但对于我的产品来说,用户体验的改善是值得的。
请记住,iOS应用程序是本地代码。WPF提供了更高级别的抽象和更快的开发速度,但通常牺牲了性能,特别是当硬件资源有限时。

我们正在Windows Embedded Standard 2009上运行.NET 3.5 SP1。 - Bjorn
我们最基本的问题是屏幕之间的转换。基本屏幕(TextBlock、Label、TextBox、Button、Grid)的布局和渲染需要超过1秒钟的时间。 - Bjorn

1

我几乎可以确定,在 WPF 的设计和最初实现阶段时,从未考虑过带有这些图形的 Atom 处理器。WPF 开发已经超过五年了,早在 GMA 500 图形出现之前就开始了。

您可能会在 Silverlight 4 堆栈中获得更好的结果,该堆栈显然是为轻量级环境而设计的。在 WPF 中可能的许多功能在 Silverlight 中都是相似或相同的。如果您没有使用 WPF 的 3D 图形或任何其他功能,则至少可以轻松移植 XAML。


“低性能”的集成图形解决方案一直存在。然而,WPF确实是为某种性能硬件堆栈设计的。另外,主机环境和任何传递(例如GDI<->DX,如果使用)都可能产生巨大的影响。我认为Windows 7修复了一些额外的长管道问题。 - user166390
没错,他们有,但微软的Avalon(后来是WPF)团队并没有针对它们进行开发;他们几乎立即转向提供Silverlight作为轻量级解决方案。 - Rob Perkins
感谢您推荐Silverlight。我们的项目目前致力于WPF,暂时没有切换的选项。 - Bjorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接