WPF渲染冻结

mat*_*ieu 9 directx wpf freeze .net-3.5

我遇到了一个GUI冻结问题,与硬件与软件UI渲染有关.

上下文:在双显示器XP嵌入式计算机(DirectX 9.0c)上运行的2个WPF应用程序(.NET 3.5 SP1).

在某些时候,其中一个应用程序冻结.但只有渲染:GUI保持活动状态(消息泵处于活动状态,应用程序响应),但渲染未完成.冻结可以持续数秒或永久.第二个应用程序保持正常运行 该错误仅在双显示配置中发生,第二个应用程序是一种催化剂(更多内存和CPU使用...)

使用Perforator,我发现视频内存使用率持续上升和下降(参见:截图).在此期间,一个本机线程消耗100%的CPU(堆栈跟踪涉及WPFgfx,DirectX,GDI和视频驱动程序)

通常,当应用程序解冻时,它会完全呈现软件(使用Perforator进行紫色调).此外,取消激活硬件渲染会解冻应用程序.

我的结论,到目前为止,是我面对的视频内存不足(如在点#14描述在这个岗位),以试图回退到软件渲染,但有一个循环,所以在硬件模式下再次尝试.

我对吗 ?它会更像是WPF问题还是视频驱动程序问题?甚至是DirectX?我可以调整一些参数吗?

Ree*_*sey 7

我对吗 ?它会更像是WPF问题还是视频驱动程序问题?甚至是DirectX?我可以调整一些参数吗?

这听起来像是司机问题.我会先看看是否有驱动程序更新.最好的选择可能只是完全禁用硬件加速,因为WPF(特别是在XP上)真的依赖于图形驱动程序.

Visual Studio 2010 sp1在XP上禁用了硬件加速,正是出于这个原因......