圖形轉譯層
轉譯層會針對執行 WPF 應用程式的裝置定義圖形硬體功能和效能層級。
圖形硬體
對轉譯層級的影響最大的圖形硬體功能如下︰
視訊 RAM:圖形硬體上的視訊記憶體數量決定可用於組合圖形的緩衝區大小和數目。
像素著色器:像素著色器是根據像素來計算效果的圖形處理函式。 根據所顯示圖形的解析度,每個顯示框架都可能需要處理數百萬個像素。
頂點著色器:頂點著色器是在物件頂點資料上執行數學運算的圖形處理函式。
多紋理支援:多紋理支援指的是可以在混色作業期間於 3D 圖形物件上套用兩個以上的不同紋理。 多紋理支援的程度取決於圖形硬體上的多紋理單位數目。
轉譯層定義
圖形硬體的功能會決定 WPF 應用程式的轉譯功能。 WPF 系統會定義三個轉譯層:
轉譯層 0:沒有圖形硬體加速。 所有圖形功能都會使用軟體加速。 DirectX 版本層級小於 9.0 版。
轉譯層 1:部分圖形功能使用圖形硬體加速。 DirectX 版本層級大於或等於 9.0 版。
轉譯層 2:大部分圖形功能都使用圖形硬體加速。 DirectX 版本層級大於或等於 9.0 版。
屬性 RenderCapability.Tier 可讓您在應用程式執行時間擷取轉譯層。 您可以使用轉譯層來判斷裝置是否支援特定硬體加速的圖形功能。 您的應用程式接著可以在執行階段,根據裝置所支援的轉譯層來採用不同的程式碼路徑。
轉譯層 0
轉譯層值 0 表示裝置上的應用程式沒有任何圖形硬體加速。 在此層級,您應該假設軟體將會在沒有硬體加速的情況下轉譯所有圖形。 此層的功能對應至小於 9.0 的 DirectX 版本。
轉譯層 1 和轉譯層 2
注意
從 .NET Framework 4 開始,轉譯第 1 層已重新定義,只包含支援 DirectX 9.0 或更新版本的圖形硬體。 支援 DirectX 7 或 8 的圖形硬體現在已定義為轉譯層 0。
轉譯層值為 1 或 2 表示,如果必要的系統資源可用且尚未耗盡,WPF 的大部分圖形功能都會使用硬體加速。 這會對應至大於或等於 9.0 的 DirectX 版本。
下表顯示轉譯層 1 和轉譯層 2 圖形硬體需求的差異︰
功能 | 層級 1 | 層級 2 |
---|---|---|
DirectX 版本 | 必須大於或等於 9.0。 | 必須大於或等於 9.0。 |
視訊 RAM | 必須大於或等於 60 MB。 | 必須大於或等於 120 MB。 |
像素著色器 | 版本層級必須大於或等於 2.0。 | 版本層級必須大於或等於 2.0。 |
頂點著色器 | 沒有需求。 | 版本層級必須大於或等於 2.0。 |
多紋理單位 | 沒有需求。 | 單位數必須大於或等於 4。 |
下列是針對轉譯層 1 和轉譯層 2 提供硬體加速的功能:
功能 | 備註 |
---|---|
2D 轉譯 | 大部分 2D 轉譯都予以支援。 |
3D 點陣化 | 支援大部分的 3D 點陣化。 |
3D 非等向性篩選 | WPF 嘗試在轉譯 3D 內容時使用異向性篩選。 非等向性篩選指的是增強離相機最遠且角度最陡之表面上紋理的影像品質。 |
3D MIP 對應 | WPF 嘗試在轉譯 3D 內容時使用 MIP 對應。 當紋理佔用較小的檢視 Viewport3D 欄位時,MIP 對應可改善紋理轉譯的品質。 |
放射狀漸層 | 支援時,請避免在 RadialGradientBrush 大型物件上使用 。 |
3D 光源計算 | WPF 會執行每個頂點光源,這表示必須針對套用至網格的每個材質在每個頂點計算光線強度。 |
文字轉譯 | 子圖元字型轉譯會在圖形硬體上使用可用的圖元著色器。 |
下列是僅針對轉譯層 2 提供硬體加速的功能:
功能 | 備註 |
---|---|
3D 消除鋸齒 | 只有支援 Windows Display Driver Model (WDDM) 的作業系統才支援 3D 消除鋸齒功能,例如 Windows Vista 和 Windows 7。 |
下列是未提供硬體加速的功能:
功能 | 備註 |
---|---|
列印的內容 | 所有列印的內容都會使用 WPF 軟體管線來轉譯。 |
使用點陣化內容 RenderTargetBitmap | 使用 Render 的 方法 RenderTargetBitmap 轉譯的任何內容。 |
使用並排顯示的內容 TileBrush | 屬性設定為 的任何並排內容 TileModeTileBrush 。 Tile |
超過圖形硬體之最大紋理大小的介面 | 針對大部分圖形硬體,大型表面的大小是 2048x2048 或 4096x4096 像素。 |
視訊 RAM 需求超出圖形硬體記憶體的任何作業 | 您可以使用 Windows SDK 之 WPF 效能套件中所含的 Perforator 工具,來監視應用程式視訊 RAM 使用方式。 |
多層式視窗 | 分層視窗可讓 WPF 應用程式在非矩形視窗中將內容轉譯至畫面。 在支援 Windows Display Driver Model (WDDM) 的作業系統上,例如 Windows Vista 和 Windows 7,分層視窗的硬體加速。 在其他系統上,例如 Windows XP,分層視窗是由沒有硬體加速的軟體轉譯。 您可以藉由設定下列 Window 屬性,在 WPF 中啟用分層視窗: - WindowStyle = None - AllowsTransparency = true - Background = Transparent |
其他資源
下列資源可協助您分析 WPF 應用程式的效能特性。
圖形轉譯登錄設定
WPF 提供四個登錄設定來控制 WPF 轉譯:
設定 | 描述 |
---|---|
停用硬體加速選項 | 指定是否應該啟用硬體加速。 |
最大多重取樣值 | 指定反鋸齒 3D 內容的多重取樣程度。 |
需要的視訊驅動程式日期設定 | 指定系統是否停用 2004 年 11 月之前所發行驅動程式的硬體加速。 |
使用軟體模擬轉譯器選項 | 指定 WPF 是否應該使用參考轉譯器。 |
任何知道如何參考 WPF 登錄設定的外部組態公用程式都可以存取這些設定。 您也可以使用 Windows 登錄編輯程式直接存取值來建立或修改這些設定。 如需詳細資訊,請參閱圖形轉譯登錄設定。
WPF 效能程式碼剖析工具
WPF 提供一套效能分析工具,可讓您分析應用程式的執行時間行為,並判斷您可以套用的效能優化類型。 下表列出 Windows SDK 工具 WPF Performance Suite 中包含的效能分析工具:
工具 | 描述 |
---|---|
Perforator | 用於分析轉譯行為。 |
Visual Profiler | 用於分析視覺化樹狀結構中的元素使用 WPF 服務,例如版面配置和事件處理。 |
WPF 效能套件提供效能資料的豐富圖形檢視。 如需 WPF 效能工具的詳細資訊,請參閱 WPF 效能套件。
DirectX
DirectX 診斷工具 Dxdiag.exe 的設計目的是協助您針對 DirectX 相關問題進行疑難排解。 DirectX 診斷工具的預設安裝資料夾為:
~\Windows\System32
當您執行 DirectX 診斷工具時,主視窗包含一組索引標籤,可讓您顯示及診斷 DirectX 相關資訊。 例如,[ 系統 ] 索引標籤會提供您電腦的系統資訊,並指定電腦上安裝的 DirectX 版本。
DirectX 診斷工具主要視窗
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應