圖形轉譯層
更新:2007 年 11 月
轉譯層會定義執行 WPF 應用程式的裝置所能達到的圖形硬體能力和效能等級。
這個主題包含下列章節。
- 圖形硬體
- 轉譯層定義
- 其他資源
- 相關主題
圖形硬體
在圖形硬體中,對轉譯層等級影響最大的功能如下:
視訊 RAM:圖形硬體上的視訊記憶體數量決定了複合 (Compositing) 圖形可以使用的緩衝區大小和數目。
像素著色引擎:像素著色引擎 (Pixel Shader) 是以每像素為單位計算效果的圖形處理功能。根據所顯示之圖形的解析度而定,每個顯示框架 (Frame) 可能需要處理達數百萬個像素。
頂點著色引擎:頂點著色引擎 (Vertex Shader) 是會對物件之頂點資料執行數學運算的圖形處理功能。
多重紋理支援:多重紋理 (Multitexture) 支援是指能夠在 3D 圖形物件的混色作業期間,套用兩個以上不同紋理的能力。多重紋理支援的程度,取決於圖形硬體上的多重紋理單元數目。
像素著色引擎、頂點著色引擎和多重紋理功能是用於定義特定 DirectX 版本等級,而這些版本等級則是用來定義 WPF 中的不同轉譯層。
轉譯層定義
圖形硬體的功能會決定 WPF 應用程式的轉譯功能。WPF 系統可以定義三個轉譯層:
轉譯層 0:沒有圖形硬體加速。DirectX 版本等級小於 7.0 版。
轉譯層 1:局部圖形硬體加速。DirectX 版本等級大於或等於 7.0 版,並小於 9.0 版。
轉譯層 2:大部分圖形功能都會使用圖形硬體加速。DirectX 版本等級大於或等於 9.0 版。
Tier 屬性可讓您在應用程式執行階段擷取轉譯層,這可讓開發人員判斷裝置是否可以支援特定硬體加速的圖形功能。然後,應用程式可以根據裝置支援的轉譯層,在執行階段採用不同的程式碼路徑。
轉譯層 0
轉譯層值為 0,表示沒有任何圖形硬體加速適用於裝置上的應用程式。在這個轉譯等級,開發人員應該假設所有的圖形都是透過沒有硬體加速的軟體進行轉譯。這層的功能相當於小於 7.0 的 DirectX 版本。
轉譯層 1
轉譯層值為 1,表示有局部圖形硬體加速適用於視訊卡。這個值相當於大於或等於 7.0 且小於 9.0 的 DirectX 版本。
下列功能是轉譯層 1 的硬體加速:
功能 |
備註 |
---|---|
2D 轉譯 |
支援大部分的 2D 轉譯。 |
3D 光柵化 (Rasterization) |
支援大部分的 3D 光柵化。然而,WPF 會使用軟體來計算頂點光源強度,接著將頂點光源強度傳遞給硬體做為頂點色彩。這表示在層 1 的光源較慢。 |
3D 非等向性篩選 |
如果轉譯層 >= 1,則在轉譯 3D 內容時,WPF 會嘗試使用非等向性篩選。非等向性篩選指的是針對離鏡頭最遠且角度最陡的介面,增強該介面上紋理的影像品質。 |
3D 縮小貼圖 (MipMap) |
如果轉譯層 >= 1,則在轉譯 3D 內容時,WPF 會嘗試使用縮小貼圖。當紋理佔用 Viewport3D 中的較小視野時,縮小貼圖可改善紋理轉譯品質。 |
下列功能「不是」轉譯層 1 的硬體加速:
功能 |
備註 |
---|---|
點陣圖效果 |
在視覺項目上使用點陣圖效果,可強制在沒有硬體加速的情況下轉譯視覺項目。 |
列印內容 |
所有列印內容都是使用 WPF 軟體管線進行轉譯。 |
使用 RenderTargetBitmap 物件的光柵化內容 |
使用 RenderTargetBitmap 之 Render 方法的所有內容轉譯。 |
使用 TileBrush 的並排顯示內容 |
|
超出圖形硬體之最大紋理大小的介面 |
大部分視訊卡都不支援大小大於 2048x2048 或 4096x4096 像素的介面。 |
視訊 RAM 需求超出圖形硬體記憶體的任何作業 |
您可以使用 Windows SDK 所提供的 WPF 的效能分析工具工具,來監視應用程式視訊 RAM 的使用情形。 |
層次視窗 |
層次視窗 (Layer Window) 允許 WPF 應用程式將內容轉譯至非矩形視窗中的螢幕。在 Windows Vista 上,層次視窗具有硬體加速,而在其他系統上 (如 Windows XP),層次視窗是透過沒有硬體加速的軟體進行轉譯。 設定下列 Window 屬性,就可以在 WPF 中啟用層次視窗:
|
放射狀漸層 |
RadialGradientBrush 的任何使用情況。 |
3D 光源計算 |
WPF 會執行每個頂點的光源,這表示必須計算套用至網狀結構之每個材質的每個頂點的亮度。在層 1,是由軟體執行計算,而在層 2,則是在硬體中執行計算。 |
文字轉譯 |
子像素字型轉譯會使用圖形硬體上的可用像素著色引擎。 |
3D 消除鋸齒 |
3D 消除鋸齒 (Anti-aliasing) 的使任何用情況。 |
下列圖形硬體功能定義了轉譯層 1:
功能 |
備註 |
---|---|
DirectX 版本 |
必須大於或等於 7.0 且小於 9.0。 |
視訊 RAM |
必須大於或等於 30 MB。 |
多重紋理單元 |
單元數必須大於或等於 2。 |
下表列出支援轉譯層 1 的常用圖形卡:
製造商 |
模型 |
---|---|
ATI |
Radeon 型號:256、7000、7500、8500、9000、9100、9200 和 9250 |
Intel |
Intel Extreme Graphics 型號:845G、845GE、845GL 和 845GV Intel Extreme Graphics II 型號:852GME、855GM、855GME、865G 和 865GV |
NVidia |
GeForce 256 GeForce2 型號:GTS、MX、MX100、MX200、MX400、Pro、Ti 和 Ultra GeForce3 型號:Ti200 和 Ti500 GeForce4 型號:MX420、MX440、MX460、MX4000、Ti4200、Ti4400、Ti4600 和 Ti4800 |
轉譯層 2
轉譯層值為 2,表示只要所需的系統資源未耗盡,WPF 大部分的圖形功能都應該使用硬體加速功能。這個值相當於大於或等於 9.0 的 DirectX 版本。
下列功能是轉譯層 2 的硬體加速:
功能 |
備註 |
---|---|
層 1 功能 |
包括所有層 1 功能。 |
放射狀漸層 |
支援時,請避免在大型物件上使用 RadialGradientBrush。 |
3D 光源計算 |
WPF 會執行每個頂點的光源,這表示必須計算套用至網狀結構之每個材質的每個頂點的亮度。在層 1,是由軟體執行計算,而在層 2,則是在硬體中執行計算。 |
文字轉譯 |
子像素字型轉譯使用圖形硬體上的可用像素著色引擎。 |
3D 消除鋸齒 |
只有 Windows Vista 才支援 3D 消除鋸齒。 |
下列功能「不是」轉譯層 2 的硬體加速:
功能 |
備註 |
---|---|
點陣圖效果 |
在視覺項目上使用點陣圖效果,可強制在沒有硬體加速的情況下轉譯視覺項目。 |
列印內容 |
所有列印內容都是使用 WPF 軟體管線進行轉譯。 |
使用 RenderTargetBitmap 的光柵化內容 |
使用 RenderTargetBitmap 之 Render 方法轉譯的所有內容。 |
使用 TileBrush 的並排顯示內容 |
|
超出圖形硬體之最大紋理大小的介面 |
大部分圖形硬體的大型介面大小為 2048x2048 或 4096x4096 像素。 |
視訊 RAM 需求超出圖形硬體記憶體的任何作業 |
您可以使用 Windows SDK 所提供的 WPF 的效能分析工具工具,來監視應用程式視訊 RAM 的使用情形。 |
層次視窗 |
層次視窗允許 WPF 應用程式將內容轉譯至非矩形視窗中的螢幕。在 Windows Vista 上,層次視窗具有硬體加速,而在其他系統上 (如 Windows XP),層次視窗是透過沒有硬體加速的軟體進行轉譯。 設定下列 Window 屬性,就可以在 WPF 中啟用層次視窗:
|
下列圖形硬體功能定義了轉譯層 2:
功能 |
備註 |
---|---|
DirectX 版本 |
必須大於或等於 9.0。 |
視訊 RAM |
必須大於或等於 120 MB。 |
像素著色引擎 |
版本等級必須大於或等於 2.0。 |
頂點著色引擎 |
版本等級必須大於或等於 2.0。 |
多重紋理單元 |
單元數必須大於或等於 4。 |
下表列出支援轉譯層 2 的常用圖形卡:
製造商 |
模型 |
---|---|
ATI |
Radeon 型號:9550、9600、9800 和 X 系列 |
Intel |
Intel GMA900 型號:915G Intel GMA950 型號:945G |
NVidia |
Geforce FX 系列、6xxx 系列和 7xxx 系列 |
其他資源
下列資源可協助您分析 WPF 應用程式的效能特性。
圖形轉譯登錄設定
WPF 提供四種用於控制 WPF 轉譯的登錄設定:
設定 |
說明 |
---|---|
停用硬體加速選項 |
指定是否應該啟用硬體加速。 |
最大多重取樣值 |
指定消除立體內容鋸齒的多重取樣程度。 |
需要的視訊驅動程式日期設定 |
指定系統是否停用在 2004 年 11 月前發行之驅動程式的硬體加速。 |
使用參考光柵處理器選項 |
指定 WPF 是否應該使用參考光柵處理器。 |
這些設定可以透過任何外部組態公用程式進行存取,而外部組態公用程式必須知道如何參考 WPF 登錄設定。使用 Windows 登錄編輯程式器直接存取值,也可以建立或修改這些設定。如需詳細資訊,請參閱圖形轉譯登錄設定。
WPF 效能分析工具
WPF 提供了一套效能分析工具,可讓您分析應用程式的執行階段行為,並判斷可套用的效能最佳化類型。下表列出 Windows SDK 工具 WPFPerf 中包含的五種效能分析工具:
工具 |
說明 |
---|---|
Event Trace |
用於分析事件及產生事件記錄檔。 |
Perforator |
用於分析轉譯行為。 |
Trace Viewer |
記錄、顯示及瀏覽 WPF 使用者介面格式的 Windows 事件追蹤 (ETW) 記錄檔。 |
Visual Profiler |
用於透過視覺化樹狀結構中的項目,分析 WPF 服務的使用 (例如配置和事件處理)。 |
Working Set Viewer |
用於分析應用程式的工作集特性。 |
Visual Profiler 工具套件提供效能資料的豐富圖形視圖。在以下的螢幕擷取畫面中,Visual Profiler 的 [CPU Usage] 區段可讓您精確細分物件的 WPF 服務使用情形,例如轉譯和配置。
Visual Profiler 顯示輸出
如需 WPF 效能工具的詳細資訊,請參閱 WPF 的效能分析工具。
DirectX 診斷工具
DirectX 診斷工具 Dxdiag.exe 的設計是要協助您疑難排解 DirectX 相關問題。DirectX 診斷工具的預設安裝資料夾是:
~\Windows\System32
當您執行 DirectX 診斷工具時,主視窗包含的一組索引標籤可讓您顯示並診斷 DirectX 相關資訊。例如,[系統] 索引標籤提供電腦的系統資訊,以及指定電腦上安裝的 DirectX 版本。
DirectX 診斷工具主視窗