Visual Studio 圖形診斷

適用于:是Visual Studio否Visual Studio for Mac否Visual Studio Code

注意

Visual Studio 建議在 Windows 上使用 DirectX 12 遊戲的 PIX。 Windows 上的 PIX 是完全支援 DirectX 12 的效能微調和偵錯工具。 如需詳細資訊下載,請參閱這裡。 ARM64 Visual Studio 不支援 Visual Studio 圖形診斷。

Visual Studio 圖形診斷是一組工具,用來記錄並分析 Direct3D 應用程式中的轉譯和效能問題。 圖形診斷可以用於 Windows 電腦、Windows 裝置模擬器或者遠端電腦或裝置上本機執行的應用程式。

圖形診斷工作流程會開始擷取您應用程式如何使用 Direct3D 的一筆記錄 (執行時為即時),以立即分析、共用或儲存其行為以供稍後使用。 您可以從 Visual Studio 或使用命令列擷取工具,以手動方式起始及控制擷取會話 dxcap.exe。 擷取會話也可以使用圖形診斷擷取 API,以程式設計方式起始和控制。

記錄擷取工作階段之後,Visual Studio「圖形分析器」隨時都可以播放其內容,方法是使用完全相同資源並轉譯應用程式所使用的命令來重建所擷取畫面格。 然後,使用 [圖形分析器] 視窗中提供的工具,即可詳細分析任何擷取的畫面格。 這些工具可以用來檢查任何 Direct3D API 呼叫、資源、管線狀態物件、管線階段,甚至所擷取畫面格中任何像素的完整歷史記錄。 透過搭配使用這些工具,可以直覺式探索轉譯問題,這是從它如何出現在所擷取的畫面格中開始,並向下鑽研至其在應用程式原始程式碼、著色器或圖形資產中的根本原因。

若要診斷效能問題,可以使用「畫面分析」工具分析所擷取的畫面格。 這項工具透過自動變更應用程式使用 Direct3D 的方式,並對所有變化進行基準測試,來探索潛在的效能最佳化。 過去,您可能已經手動進行這些類型的變更並只對其進行基準測試,以找出哪些變更造成差異。 使用畫面格分析,您只需要進行已知道成功的變更。

圖形診斷有助於您具有豐富圖形之 Direct3D 應用程式的外觀而且執行效果最佳。

繼續流覽概 ,以深入瞭解 Visual Studio 圖形診斷所提供的功能。

本節內容

概述 介紹圖形診斷工作流程和工具。

消費者入門在本節中,您將瞭解如何安裝 Visual Studio 圖形診斷,以及如何開始搭配 Direct3D 應用程式使用圖形診斷。

擷取圖形資訊 若要使用圖形診斷來檢查應用程式中的轉譯問題,您必須先記錄應用程式如何使用 DirectX 的資訊。 在記錄工作階段期間,如果您的應用程式正常地執行,請「擷取」(亦即選取) 感興趣的畫面格。 擷取包含如何呈現畫面格的詳細資訊。 您可以將擷取到的資訊儲存為圖形記錄文件,以供稍後再檢查,或與您小組的其他成員共用。

GPU 使用量 若要使用圖形診斷來分析您的應用程式,請使用 GPU 使用量工具。 GPU 使用量可以用於與其他程式碼剖析工具 (例如 CPU 使用量) 搭配使用,以關聯可能造成應用程式中效能問題的 CPU 和 GPU 活動。

圖形記錄檔 若要開始檢查錄製的圖形記錄檔,您可以使用 [圖形記錄檔] 文件視窗來選取擷取的框架,甚至是特定圖元,以便您可以詳細檢查 事件 (, 也就是 DirectX API 會呼叫影響它的) 。

畫面格分析 選取框架之後,您會使用圖形畫面格分析來檢查及調整您的轉譯效能。

事件清單 選取框架之後,您可以使用 [圖形事件清單 ] 來檢查其事件,以判斷它們是否與轉譯問題有關。

狀態 [狀態] 視窗可協助您瞭解目前事件時作用中的圖形狀態。

管線階段 在 [ 圖形管線階段] 視窗中,您可以調查圖形管線的每個階段如何處理目前選取的事件,以便識別呈現問題第一次出現的位置。 如果物件因轉換錯誤而未出現,或其中一個階段產生不符合下個階段所預期的輸出,則檢查管線階段會特別有用。

事件呼叫堆疊 您可以使用 圖形事件呼叫堆疊 來檢查目前選取事件的呼叫堆疊,以便流覽至與轉譯問題相關的應用程式程式碼。

圖元歷程記錄 藉由使用 [ 圖形圖元歷程記錄 ] 視窗來分析目前選取的圖元受到影響之事件的影響,您可以識別造成特定轉譯問題之事件或事件的組合。 如果因像素著色器輸出不正確,或已錯誤地與畫面格緩衝區合併,導致錯誤地呈現物件;或者,如果因為在物件像素到達畫面格緩衝區之前捨棄物件像素,使得物件未顯示,則像素歷史記錄特別有用。

物件資料表 您可以使用 [繪圖物件表 ] 來檢查目前所選事件生效之特定 Direct3D 物件和資源的屬性和內容。 物件表可以協助您判斷在事件期間使用中的圖形裝置內容,以及檢查圖形資源的內容 (例如常數緩衝區、端點緩衝區和紋理)。

HLSL 偵錯工具 若要檢查目前所選事件和圖形管線階段的著色器程式碼運作方式,您可以使用 HLSL 偵錯工具 逐步執行程式碼、檢查變數的內容,以及執行其他一般偵錯工作。 您也可以使用 HLSL 偵錯工具,檢查計算著色器程式碼,不論圖形管線是否進一步處理結果,或應用程式是否讀回結果。

命令列擷取工具 使用命令列擷取工具來快速擷取和播放圖形資訊,而不需使用 Visual Studio 或程式設計擷取。 特別是,您可以使用命令列的擷取工具自動化,或在測試環境中使用。

例子 數個範例示範如何使用圖形診斷工具來診斷不同類型的轉譯問題。

標題 描述
偵錯工具功能導覽 介紹 Visual Studio 中的偵錯功能。
DirectX 圖形與遊戲 提供討論 DirectX 圖形技術的文章。
Visual Studio 中的 DirectX 12 支援 瞭解 Visual Studio 中的 DirectX 12 支援