共用方式為


擷取圖形資訊

您可以從 DirectX 應用程式擷取圖形資訊,以便使用 Visual Studio 圖形診斷工具來診斷問題。

擷取方法

在 Windows 8.1 中,DirectX 11.2 執行階段可以代表偵錯工具 (如圖形診斷) 在內部擷取圖形資訊;這稱為「穩固擷取」(robust capture)。 在此支援加入至 DirectX 執行階段之前,圖形資訊的擷取方式是先攔截特定 DirectX 函式呼叫來記錄引數和其他資訊,再將呼叫轉送給 DirectX 以完成;這稱為「舊版擷取」(legacy capture)。

因為只有 DirectX 執行階段才能在 Windows 8.1 中擷取圖形資訊,所以不需要更新舊版擷取來支援 DirectX 11.2,因此,舊版擷取已被取代。 不過,因為 DirectX 11.2 執行階段不支援 Windows 8.1 之前的 Windows 版本,所以針對將目標設為 Windows 8 和 Windows 7 的應用程式,Visual Studio 2013 仍然支援舊版擷取。

這兩種方法都記錄類似的資訊,而且不會變更您擷取圖形資訊的方式,或使用圖形診斷工具的方式。

穩固擷取

穩固擷取支援 Windows 8.1、Windows RT 8.1 和 Windows Phone 8.1 上的 Visual Studio 2013 圖形診斷。 它支援 DirectX 10.0 到 DirectX 11.2,而且可以擷取新的 Direct3D 11.2 功能 (例如,並排的資源) 的圖形資訊。 不過,它未完全支援所有 Direct3D 11.2 功能 (例如,您無法偵錯使用 HLSL 著色器連結功能所建立的 HLSL 著色器)。 穩固擷取使用新的擷取 API,以支援其程式設計擷取情況。

舊版擷取

舊版擷取支援 Windows 8、Windows RT 8 和 Windows 7 上的 Visual Studio 2013 和 Visual Studio 2012 圖形診斷。 它支援 DirectX 10.0 到 DirectX 11.1。 舊版擷取不支援任何 Direct3D 11.2 功能且已被取代,但無法使用穩固擷取的情況除外。 舊版擷取使用 vsgcapture.h 標頭檔中所定義的擷取 API,以支援其程式設計擷取情況。 這類型的程式設計擷取也已被取代,但無法使用穩固擷取的情況除外。

擷取圖形資訊

擷取圖形資訊需要兩個步驟: 首先,在 [圖形診斷] 下執行您的應用程式,然後指定一個或多個框架以取得其中的詳細資訊。

在圖形診斷下執行您的應用程式

  • 在功能表列上,選擇 [偵錯]、[圖形]、[開始診斷]。 (鍵盤:按 Alt+F5)

  • 在 [圖形診斷] 工具列上,選擇 [開始診斷] 按鈕。

當應用程式在 [圖形診斷] 下執行時,會一直擷取某些類型的圖形資訊,這些資訊包括裝置設定、交換鏈結的建立、圖形物件和資源的建立,以及影響多個框架的其他重要事件。 同時,您可以擷取特定框架的詳細資訊 (這些資訊包括繪製呼叫和計算著色器分派),以及支援它們的 Direct3D 物件和資源。

擷取框架

  • 在 Visual Studio 中的 [圖形診斷] 工具列上,選擇 [擷取框架] 按鈕圖形擷取按鈕圖示

  • 接下鍵盤上的 Print Screen 鍵。

    注意事項注意事項

    當應用程式在 [圖形診斷] 下執行時,Print Screen 鍵只能用來擷取圖形資訊的框架,而不會執行其一般功能。此種狀況在停止擷取圖形資訊 (通常會藉由停止偵錯或正常結束) 之前都會保持有效狀態,即是程式焦點是在另一個應用程式上亦是如此。

  • Visual Studio 2013 Update 3 用來擷取畫面格的介面已經變更。 在 Visual Studio 擷取介面中,選擇位於 [診斷工作階段] 時間軸上方的 [擷取畫面格] 按鈕,或選擇位於 [每秒畫面格數] 泳道下方且位於先前擷取之任一畫面格右邊的大型 [擷取畫面格] 按鈕。 下面的影像中會將這兩個按鈕反白顯示。

    擷取使用 GPU 使用工具的畫面格。

    當您準備要檢查您擷取的畫面格時,可依照影像縮圖上方的 [畫面格 …] 連結或按兩下縮圖,來啟動 Visual Studio 圖形分析。

由於只能擷取整個框架,因此當您啟始擷取時,它其實是從下一個框架的圖形資訊開始錄製。 錄製會在您啟始擷取的框架呈現後立即開始,而當要擷取的框架顯示時就會結束。 您可以在應用程式於 [圖形診斷] 下執行時擷取所需的框架數。 如果您不擷取任何框架,則會捨棄圖形記錄。

當您第一次擷取框架時,Visual Studio 會顯示圖形記錄 (.vsglog) 文件視窗。 如果您關閉圖形記錄視窗、停止偵錯或結束應用程式,則無法再擷取框架至該記錄檔。 若要擷取多個圖形資訊,您必須再次於 [圖形診斷] 下執行應用程式,開始進行新的圖形記錄。

圖形診斷擷取選項

您可以設定擷取來收集所有圖形事件或限定子集的呼叫堆疊、停用擷取抬頭顯示器 (HUD),以及啟用或停用擷取相容性模式。

設定圖形診斷擷取選項

  1. 在功能表列上選擇 [工具]、[選項]。 [選項] 對話方塊隨即出現。

  2. 在左邊的選項類別清單中,選擇 [圖形診斷],然後設定您想要的 [圖形診斷] 選項。

    • 收集擷取期間的呼叫堆疊 (會使擷取速度變慢)
      核取此方塊可收集呼叫堆疊。 根據預設,會收集呼叫堆疊,並已選取 [用於繪圖、分派、呈現和效能標記]。 若要擷取所有事件的呼叫堆疊,請選取 [用於所有項目]。 若不要收集呼叫堆疊,則取消核取 [收集擷取期間的呼叫堆疊 (會使擷取速度變慢)]。

    • 在擷取期間停用遊戲中抬頭顯示器
      核取此方塊可停用抬頭顯示器覆疊 (通常會顯示在圖形診斷下執行的應用程式)。 將其取消選取會顯示抬頭顯示器覆疊。

    • 在相容性模式中擷取
      核取此方塊,以在相容性模式下擷取圖形資訊。 以相容性模式擷取是預設值。 在相容性模式下,Direct3D 不會回報 GPU 支援除了基底功能層級中定義的功能之外的任何其他功能。 如此可防止使用 GPU 的硬體特定擴充功能來擷取應用程式,並確保可以使用支援相同或更高功能層級的任何 GPU 來播放圖形記錄檔。 取消核取此方塊可停用相容性模式;如果 GPU 不支援應用程式在擷取期間所使用的相同其他功能,則無法在該 GPU 上播放在停用相容性模式的情況下所擷取的記錄檔。

從遠端擷取圖形資訊

圖形資訊可以從執行於本機電腦、遠端電腦或裝置的應用程式進行擷取。 Windows 8.1 電腦和 Windows RT 8.1 裝置支援遠端擷取。 若要從遠端執行的應用程式擷取圖形資訊,請將專案設定為從遠端偵錯,並依先前所述在 [圖形診斷] 下執行應用程式。 應用程式會在遠端電腦上執行,而擷取的圖形資訊會記錄在您的開發電腦上。

如何將專案設定為從遠端偵錯,取決於您所開發的應用程式種類,以及您所使用的程式語言。 如需如何為 Windows 市集應用程式設定遠端偵錯的詳細資訊,請參閱在遠端電腦上從 Visual Studio 執行 Windows 市集應用程式。 如需如何為 Windows 桌面應用程式設定遠端偵錯的詳細資訊,請參閱為 Visual Studio 專案設定遠端偵錯

之後,您就可以使用遠端電腦或裝置播放圖形資訊,而不管是從何處擷取的資訊。 如需詳細資訊,請參閱如何:變更圖形診斷播放電腦

從命令列擷取圖形資訊

您可以使用命令列工具,從應用程式擷取圖形資訊。 這個 DXCap.exe 工具可以快速擷取及播放圖形資訊,而不需使用 Visual Studio 或以程式設計方式擷取。 特別是,您可以使用 DXCap.exe 進行自動化,或是在測試環境中使用。 如需 DXCap.exe 的詳細資訊,請參閱 命令列擷取工具

請參閱

工作

逐步解說:擷取圖形資訊