2010-10-05 36 views
3

令我失望的是,我發現我正在使用的某個應用程序在某些計算機上渲染效果不佳。 UI靜態圖形和文本遭受嚴重撕裂而沒有做任何動畫的情況。這使得文本無法讀取,當然,圖形看起來很差。關於WPF可以做些什麼來渲染UI的撕裂?

我注意到了不同計算機上的這個問題,但真正讓我覺得這個問題是使用Radeon Mobility顯卡的新東芝筆記本電腦:當筆記本電腦在電池上運行時,沒有撕裂 - 但是當它插入時 - 一切都是一團糟。所以這看起來像電源線噪聲問題,這顯然會影響顯卡 - 我猜硬件加速圖形。然而,非WPF圖形渲染效果很好,所以你如何告訴用戶:「這不是我的應用程序,它是你的電源!」?!

你有沒有碰到過這個?無論如何要修復它?

的應用程序是.NET 4.0,和筆記本電腦運行Windows 7

+0

一旦你開始使用硬件加速圖形,視頻驅動程序是臭名昭着的問題;這是遊戲引擎開發者在獲得各種硬件兼容性時遇到的主要問題。如果驅動程序更新失敗,則可嘗試禁用硬件加速圖形:http://msdn.microsoft.com/en-us/library/aa970912.aspx#disablehardwareacceleration – 2010-10-05 15:55:21

+1

在旁註中,我懷疑這是電源線噪聲;當使用電池供電以節省電力時,系統很可能會簡單地關閉硬件加速。 – 2010-10-05 15:56:50

回答

2

我碰到我的宏基筆記本電腦同樣的事情。這實際上是屏幕驅動程序的驅動程序問題,供應商更新完全解決了問題。

我會建議直接聯繫東芝關於這個問題。將它們指向一些公開的,容易找到證明問題的WPF應用程序。

與此同時,我所知道的唯一「解決方案」是讓WPF完全禁用硬件加速。 This post描述瞭如何強制所有WPF應用程序進行軟件渲染,這應該可以糾正撕裂(以大幅降低渲染性能爲代價)。

1

正如裏德所說,這很可能是一個驅動問題。不過,我之前在一些帶有最新驅動程序的卡片上看到了這一點,所以它並不總是一個可解決的問題,具體取決於您的硬件。如果這引起特定的顯卡顯卡問題,你也許可以試試這個解決辦法...

在註冊表編輯器,您可以創建或編輯下面的DWORD值改爲「1」強制軟件渲染所有WPF應用程序:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration 

我已經在過去發現,低端機(筆記本電腦和集成顯卡的機器),這往往noiceable提高WPF應用程序的性能,因爲它減少之間的內存爭GPU和CPU。

2

這些問題通常是由ATI顯卡的驅動程序引起的。 NVidia卡(雖然他們有自己的問題)通常不會顯示這些問題。

修復它的最簡單方法是禁用硬件渲染。這可能會導致性能問題,但通常不會引起顯着差異,有時甚至可以提高性能。您需要對自己的應用進行測試才能看到。從一個窗口的代碼設置:

(PresentationSource.FromVisual(this) as HwndSource).CompositionTarget.RenderMode = RenderMode.SoftwareOnly;