最佳化效能:運用硬體

WPF 的內部架構有兩個轉譯管線:硬體和軟體。 本主題提供這些轉譯管線的相關資訊,協助您決定應用程式的效能優化。

硬體轉譯管線

判斷 WPF 效能的最重要因素之一是轉譯系結—您必須轉譯的圖元越多,效能成本就越高。 不過,可以卸載至圖形處理單位 (GPU) 的轉譯愈多,您可以獲得更多的效能優勢。 WPF 應用程式硬體轉譯管線充分利用支援最低 Microsoft DirectX 7.0 版的硬體上的 Microsoft DirectX 功能。 支援 Microsoft DirectX 7.0 版和 PixelShader 2.0+ 功能的硬體可以進一步優化。

軟體轉譯管線

WPF 軟體轉譯管線完全是 CPU 系結。 WPF 會利用 CPU 中的 SSE 和 SSE2 指令集來實作優化、功能完整的軟體轉譯器。 每當無法使用硬體轉譯管線轉譯應用程式功能時,軟體的後援即可順暢地轉譯。

在軟體模式中轉譯與填滿率相關的最大效能問題,定義為您要轉譯的圖元數。 如果您擔心軟件轉譯模式中的效能,請嘗試將圖元重繪的次數降到最低。 例如,如果您有具有藍色背景的應用程式,然後呈現稍微透明的影像,您會在應用程式中轉譯所有圖元兩次。 因此,使用影像轉譯應用程式所需的時間會比只有藍色背景還要長兩倍。

圖形轉譯層

可能很難預測應用程式將執行的硬體組態。 不過,您可能想要考慮一種設計,讓應用程式在不同的硬體上執行時順暢地切換功能,以便充分利用每個不同的硬體組態。

為了達成此目的,WPF 提供功能來判斷系統在執行時間的圖形功能。 圖形功能取決於將視訊卡分類為三個轉譯功能層之一。 WPF 會公開可讓應用程式查詢轉譯功能層的 API。 然後,您的應用程式可以在執行時間採用不同的程式碼路徑,視硬體支援的轉譯層而定。

對轉譯層級的影響最大的圖形硬體功能如下︰

  • 視訊 RAM:圖形硬體上的視訊記憶體數量決定可用於組合圖形的緩衝區大小和數目。

  • 像素著色器:像素著色器是根據像素來計算效果的圖形處理函式。 根據所顯示圖形的解析度,每個顯示框架都可能需要處理數百萬個像素。

  • 頂點著色器:頂點著色器是在物件頂點資料上執行數學運算的圖形處理函式。

  • 多紋理支援:多紋理支援指的是可以在混色作業期間於 3D 圖形物件上套用兩個以上的不同紋理。 多紋理支援的程度取決於圖形硬體上的多紋理單位數目。

圖元著色器、頂點著色器和多重文字功能可用來定義特定的 DirectX 版本層級,進而用來定義 WPF 中的不同轉譯層。

圖形硬體的功能會決定 WPF 應用程式的轉譯功能。 WPF 系統會定義三個轉譯層:

  • 轉譯層 0:沒有圖形硬體加速。 DirectX 版本層級小於 7.0 版。

  • 轉譯第 1 層部分圖形硬體加速。 DirectX 版本層級大於或等於 7.0 版,且 小於 9.0 版。

  • 轉譯層 2:大部分圖形功能都使用圖形硬體加速。 DirectX 版本層級大於或等於 9.0 版。

如需 WPF 轉譯層的詳細資訊,請參閱 圖形轉譯層

另請參閱