【问题标题】:Slow WPF performance on GMA 500 integrated graphicsGMA 500 集成显卡上的 WPF 性能缓慢
【发布时间】:2011-01-27 22:58:55
【问题描述】:

我的团队正在开发要部署在英特尔凌动 Z530 上网本硬件平台上的 WPF 应用程序。 Intel Atom Z530 配备 Intel GMA 500 集成显卡,具有 PowerVR SGX 535 GPU 内核。 PowerVR SGX 535 GPU 内核正是 Apple 用于 iPad 的 A4 芯片组中使用的图形内核。

我的问题: 为什么使用 PowerVR SGX 535 图形的 WPF 如此缓慢?

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

感谢您提供任何见解!

【问题讨论】:

  • 我不知道这是否有帮助:您能否尝试使用最新版本 DirectX 更新视频驱动程序,并尝试安装 .Net 4(也许它解决了一些错误,并进行了一些更新,即使你运行的是 .net 3.5) 和 Win7 看看它在这个设备上是否有更好的性能?
  • 感谢司机的评论。我们已经尝试过 Intel XP GMA 500 驱动程序和 IEGD 驱动程序。两者都有相似的表现。但是,我们确实发现 IEGD 驱动程序具有出色的 OpenGL 性能。
  • 我听说英特尔声称 GMA 500 驱动程序有一个 WPF 特定的错误,他们不打算修复。我还听说 GMA 500 管道对于 WPF 来说太小了,因为 WPF 在图形管道上执行所有屏幕布局。 GMA 500 只期望 3D 工作负载,无法跟上所有屏幕渲染的责任。
  • 你可能有第一句话的来源吗?谢谢! =)

标签: wpf


【解决方案1】:

您是否在 Windows Embedded Standard 7 上运行 .Net 4?我发现 WPF 在 Windows 7 中比 XP 运行得更好。

您的具体性能问题是什么?

如果是动画,请尝试使用缓存合成(.Net 4 功能)将 BitmapCache 应用于您可能被动画处理过的任何背景。此外,请务必分享并冻结您使用的所有画笔。

如果是图表,请下拉到 DrawingVisuals,而不是使用 Shapes 或其他更高级别的构造。作为最后的手段,您还可以使用 GDI+ 绘制到 WriteableBitmaps 中。

此外,根据我的经验,双核 Atoms 还将提供更流畅的 WPF UI。如果可能,请尝试使用 Atom D510 或 D525。它们使用更多的功率并散发出更多的热量,但对于我的产品而言,用户体验的改进是值得的。

请记住,iOS 应用是本机代码。 WPF 提供了更高级别的抽象和更快的开发,但通常会降低性能,尤其是在硬件资源有限的情况下。

【讨论】:

  • 我们在 Windows Embedded Standard 2009 上运行 .NET 3.5 SP1。
  • 我们遇到的最基本的问题是屏幕到屏幕的转换。基本屏幕(TextBlock、Label、TextBox、Button、Grid)的布局和渲染需要 1 秒以上。
【解决方案2】:

我发现 XP 上的所有 GMA 芯片组的 WPF 性能都很差。不仅低帧率而且可怕的图形故障和伪影。表面会变得透明,视频表面会变得乱七八糟,鼠标悬停会出现故障。

我们的解决方案是通过向有问题的客户提供的注册表补丁禁用硬件加速。

【讨论】:

    【解决方案3】:

    我几乎可以肯定,当 WPF 处于设计和第一个实施阶段时,甚至从未考虑过具有这些图形的 Atom 处理器。 WPF 是在五年前开发的,早在 GMA 500 图形出现之前。

    使用 Silverlight 4 堆栈可能会获得更好的结果,它肯定是为轻量级环境设计的。 WPF 中的大部分功能在 Silverlight 中是相似或相同的。如果您不使用 WPF 的 3D 图形或任何其他功能,您至少可以轻松移植 XAML。

    【讨论】:

    • “低性能”集成图形解决方案几乎一直存在 :-] 然而,WPF 确实是为具有某种性能的硬件堆栈而设计的。在相关的说明中,主机环境和任何传递(例如 GDIDX,如果使用)可以产生巨大的差异。我认为 Windows 7 修复了一些超长管道问题。
    • 他们有,这是真的,但微软的 Avalon(后来的 WPF)人并没有针对他们;他们几乎立即开始提供 Silverlight 以获得轻量级解决方案。
    • 感谢 Silverlight 的推荐。我们的项目目前致力于 WPF,目前没有切换选项。
    猜你喜欢
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    相关资源
    最近更新 更多