> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 新版 PIX Checklist 導覽：輕鬆掌握 GPU 效能

> 新版 PIX Checklist 導覽：輕鬆掌握 GPU 效能

Performance Investigator for XBOX (PIX) 是一款效能分析與偵錯工具，適用於建置 DirectX 12 遊戲的遊戲開發人員。本主題介紹 PIX Checklist 檢視 (示範一與示範二)，並說明五個範例使用案例 (示範三至示範七)。

新的 PIX Checklist 功能是您進行 GPU 最佳化的一站式工具。它是一份精選的最佳做法清單，所有違規項目都會直接標示在擷取內容中。了解 PIX 如何將許多效能檢查自動化，這些檢查在例行的遊戲 GPU 效能審查中，最常帶來最佳化與改善。

<Note>
  此資訊截至 2022 年 4 月為最新。之後已有數項功能變更或更新。
</Note>

<a id="introducing-the-pix-checklist" />

## PIX Checklist 簡介

PIX Checklist 針對 GPU 效能與正確性提供自動化建議。PIX 擷取的分析資料可用來分析 GPU、CPU、記憶體及檔案 IO 效能問題。PIX Checklist 隨附於 2021 年 4 月版的 Microsoft Game Development Kit with XBOX Extensions (GDKX)，並在後續版本中持續改善。如果您仍在使用 2021 年 4 月版的 GDK，請立即更新。

PIX Checklist 僅適用於 XBOX Series X|S。之所以未納入 XBOX One X，是因為這會占用 XBOX Series X|S 的工程時間。不過，兩個平台的效能建議通常是相同的。

### 自動化的優點

自動化可以找出下列問題：

* 您沒有檢查的問題
* 多次發生的小問題
* 需要了解整個擷取內容才能發現的問題

PIX 可以找出您沒有檢查的問題。其中有些問題看似極不可能發生，以致於您可能根本沒想到要檢查。例如，在 XBOX Series X 上有兩種 GPU 記憶體：最佳 (optimal) 與標準 (standard)。一般人往往假設 GPU 擷取中的所有內容都位於最佳記憶體中，但有時並非如此。您可能不會檢查這一點，但 PIX 可以替您檢查。

PIX 可以檢查多次發生的小問題。個別來看，這些問題影響不大。不過，知道它們發生了這麼多次可能很重要。最近，ATG 發現有兩個案例中，遊戲在每次繪製時都重設模板參考值。如果只在一次繪製中看到，那沒有關係。如果每次繪製都出現，就會成為問題。PIX 可以偵測這類重複情況。

PIX 可以找出您必須看過整個擷取內容才會知道的問題。例如，您可能已將某個資源建立為轉譯目標，卻從未將它繫結為轉譯目標。您必須查看擷取中的每次繪製才能確認這一點，但 PIX 可以替您完成。

<a id="demo-17-locating-and-navigating-the-pix-checklist" />

## 示範一：找到並瀏覽 PIX Checklist

本節說明 Checklist 檢視。

**圖 1. PIX 概觀視窗。**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n01.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=fab877bccedfacb8be164f9fe9f6152d" alt="PIX 概觀畫面" width="1280" height="702" data-path="images/gdk/features/graphics/gr01-n01.png" />

圖 1 顯示在 2022 年 3 月版 GDK 中開啟 PIX 時，Checklist 在預設版面配置中的位置。

**圖 2. PIX Checklist 檢視。**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n03.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=81efe693d33612712b4d0f474ab72a15" alt="PIX Checklist 檢視" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n03.png" />

圖 2 顯示 PIX Checklist 檢視。綠色核取記號表示該項目通過檢查。紅色、橘色或黃色圖示表示檢查失敗。

由於它是一份檢查清單，其中包含 ATG 建議您審查的項目或檢查。例如 *Use Async Compute Queue* 項目。圖 2 顯示此項目已完成並有綠色核取記號，因此檢查通過。

**圖 3. PIX「Collected when running analysis」工具提示範例。**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n04.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=743a95e1809ce03c9878bcae038286ea" alt="PIX 工具提示範例" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n04.png" />

綠色核取記號以外的任何圖示都表示該問題需要您注意。紅色、橘色或黃色圖示會警告您該檢查清單項目失敗。沙漏圖示表示該檢查需要您尚未執行的動作。工具提示會告訴您該怎麼做。在圖 3 中，工具提示為 **Collected when running analysis**。這表示您需要執行分析。

**圖 4. PIX「Collected when opening the Resources tab」工具提示範例。**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n05.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=ca72cbfa22cc01459d14d42862d90d38" alt="另一個 PIX 工具提示範例" width="1232" height="720" data-path="images/gdk/features/graphics/gr01-n05.png" />

圖 4 顯示 **Collected when opening the Resources tab** 工具提示。

**圖 5. PIX Events 檢視。**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-f04.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=fb6d0a058feb3cb2e5673379b2f9f487" alt="PIX Events 檢視" width="1268" height="713" data-path="images/gdk/features/graphics/gr01-f04.png" />

失敗的項目可以展開。視項目而定，PIX 會提供實用的資訊與連結。圖 5 顯示一個 Checklist 項目，其中有一個參考 Global ID 4477 的連結。選取該連結會將您連到 Events 檢視器中 Global ID 4477 的事件。Events 檢視中內建了 Checklist 的一個元件。在這裡，最左側的 **Queue ID** 欄位具有與 Checklist 檢視中相同的紅色圖示。Events 檢視中的項目也有連結。當您在 Events 檢視中選取紅色圖示時，該項目就會出現在 Checklist 檢視中。

<a id="history-of-attempts" />

### 自動化嘗試失敗的原因

為了做對的事，我們需要您了解先前的嘗試出了什麼問題。最明顯的就是誤判 (false positive)。如果檢查清單告訴您做錯了某件事，但實際上您並沒有做錯，那就是必須修正的錯誤。

不過，有時一些細微的問題並不是誤判，但與誤判有關。這些是真陽性 (true positive) 的案例：檢查清單是正確的，確實有失敗，但因為某些原因，您無法或不會修正它。我們將這類問題稱為 \_Yes but\_ (「是，但是…」)。

範例包括：

* Checklist 指出 *Prefer GPU Optimal Memory for Graphics Resources*。是，但是：您的 GPU 最佳記憶體已用盡，而 PIX Checklist 卻要您修正不可能的事。
* Checklist 指出 *Avoid consecutive calls to ResourceBarrier*。是，但是：只出現少數幾次。不值得修正，因為無法省下任何實質效益。
* Checklist 指出 *Use the 2nd hardware display plane*。是，但是：您不想為 PC、XBOX One X 與 XBOX Series X|S 分支程式碼。

解決這類問題的一種方法是強大的篩選功能。如果不需要，您就不會看到它們。

自動化失敗也會因為意見回饋與反覆修正而發生。檢查清單功能的存續並非必然。目前已有一些不錯的成果，但仍會過度回報不重要的問題。

<a id="demo-27-filtering-the-checklist-view" />

## 示範二：篩選 Checklist 檢視

本節說明如何在 Checklist 檢視中進行篩選。

**圖 6. 在 Checklist 檢視中依通過/失敗狀態進行 PIX 篩選。**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n07.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=4c7609b26c526d2da59db64cc8f2db27" alt="在 Checklist 檢視中依通過/失敗狀態進行 PIX 篩選" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n07.png" />

圖 6 顯示選取綠色的 **Hide rules with no violations** 按鈕後，檢查清單依通過/失敗狀態篩選的結果。規則依嚴重性排序。ATG 會為每條規則指派 1 到 4 的嚴重性等級。

**圖 7. 在 Checklist 檢視中依嚴重性進行 PIX 篩選。**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-n06.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=9420a013e5127acee177d3232cbdd33e" alt="在 Checklist 檢視中依嚴重性進行 PIX 篩選" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n06.png" />

如果您只想查看最嚴重的警告，可以將檢查清單限制為嚴重性 1 或嚴重性 2。圖 7 顯示依嚴重性 1 規則篩選的檢查清單。

**圖 8. 在 Checklist 檢視中手動停用 PIX 規則。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n08.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=d9088fdd717139ddd1db0e826878f057" alt="在 Checklist 檢視中手動停用 PIX 規則" width="1280" height="694" data-path="images/gdk/features/graphics/gr01-n08.png" />

如果有您不想看到的規則，請以滑鼠右鍵按一下該規則，然後選取 **Disable this rule**。圖 8 顯示透過停用規則來篩選檢查清單。

**圖 9. 未篩選的 PIX Checklist 檢視。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n09.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=b1775fe7e7a674f4251300b9667b7ae7" alt="未篩選的 PIX Checklist 檢視" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n09.png" />

您也可以選取綠色 **Hide rules with no violations** 圖示左側的 **Show disabled rules**。您先前停用的所有項目都會啟用並顯示。圖 9 顯示未篩選的檢查清單。

**圖 10. 在 Checklist 檢視中依文字進行 PIX 篩選。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n10.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=c493cc8b93b527c209ece41299cad99e" alt="在 Checklist 檢視中依文字進行 PIX 篩選" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n10.png" />

如果您想尋找某個警告，且知道其中的部分文字，請在檢查清單的搜尋方塊中輸入該文字。檢查清單會顯示警告標題或詳細描述中符合該文字的規則。

圖 10 顯示依文字篩選的檢查清單。

下列各節中的範例顯示您可能會在檢查清單中看到的警告。這些範例以八款遊戲為樣本。這些遊戲都已上市並經過最佳化，因此要在其中找出問題困難許多。檢查清單在製作初期、仍有問題需要找出時效果最佳。

<a id="demo-37-unnecessary-depth-decompress" />

## 示範三：不必要的深度解壓縮

本節說明 **Use Texture Compatibility on Compressed Resources** 警告，並以不必要的深度解壓縮作為範例。

**圖 11. 顯示 Use Texture Compatibility on Compressed Resources 警告的 PIX Checklist 檢視。**

<img src="https://mintcdn.com/microsoft-4404708b/EHFikhsC0GyEu9Ca/images/gdk/features/graphics/gr01-f06.png?fit=max&auto=format&n=EHFikhsC0GyEu9Ca&q=85&s=4bd14bc421d87ec069f5a637e3a9b452" alt="顯示 Use Texture Compatibility on Compressed Resources 警告的 PIX Checklist 檢視" width="1268" height="713" data-path="images/gdk/features/graphics/gr01-f06.png" />

在第一個範例中，圖 11 顯示 **Use Texture Compatibility on Compressed Resources** 警告。請注意，您可以閱讀視窗底部的描述，以取得有關此警告的更多詳細資料。選取 Global ID #337 連結以繼續調查此問題。

**圖 12. 含深度解壓縮的 PIX Events 檢視。**

<img src="https://mintlify.s3.us-west-1.amazonaws.com/microsoft-4404708b/images/gdk/features/graphics/gr01-f07.png" alt="含深度解壓縮的 PIX Events 檢視" />

選取該連結會帶您前往 Events 檢視中的 ResourceBarrier 呼叫，如圖 12 所示。Depth Decompress 位於 ResourceBarrier 呼叫下方。不過，在 XBOX Series X|S 上有一項紋理相容性功能，可讓您略過 Depth Decompress，直接原生讀取壓縮格式。深度解壓縮通常不會出現在這個位置。您不會預期看到 Depth Decompress，而它耗費了 0.116 毫秒。檢查清單會告訴您哪裡發生了違規。

**圖 13. PIX API Objects 檢視與紋理相容性旗標。**

<img src="https://mintlify.s3.us-west-1.amazonaws.com/microsoft-4404708b/images/gdk/features/graphics/gr01-f08.png" alt="PIX API Objects 檢視與紋理相容性旗標" />

進一步調查會帶您前往 API Objects 檢視及所示的物件。圖 13 確認物件 #35073 是以深度模板緩衝區建立的，但並未指定紋理相容性。

這個警告在兩款樣本遊戲中都出現了。對其中一款而言，這是很好的發現。另一款則表示「是，但是」：他們已經嘗試過，而且影響不大。因此，即使在其他地方損失了效能，忽略 Depth Decompress 也是合理的。

<a id="demo-47-delta-color-compression" />

## 示範四：差異色彩壓縮 (DCC)

本節說明 **Use Delta Color Compression for Pre-cleared Color Textures** 警告。

**圖 14. PIX 差異色彩壓縮。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n14.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=f2326dc99f8b926b2e22bf51fed517e0" alt="PIX 差異色彩壓縮" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n14.png" />

圖 14 顯示 **Use Delta Color Compression for Pre-cleared Color Textures** 警告。XBOX Series X|S 上大多數的轉譯目標都會使用 DCC。它支援紋理相容性，因此這個警告與示範三中的範例有關。選取 Global ID #1311 連結會帶您前往所選取的事件。

**圖 15. PIX Fast Clear Eliminate 警告。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n15.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=8780d3ff6ae7912a9964668245c5d8f1" alt="PIX Fast Clear Eliminate 警告" width="1232" height="720" data-path="images/gdk/features/graphics/gr01-n15.png" />

圖 15 顯示在 Checklist 檢視中選取連結後出現的 **Fast Clear Eliminate** 警告。這不尋常，因為 DCC 沒有 **Fast Clear Eliminate**。通常您不會預期在 XBOX Series X|S 擷取中看到這類警告。**Fast Clear Eliminate** 是 XBOX One 所使用的壓縮類型。在 **Fast Clear Eliminate** 上觸發警告，表示使用的是 *cmask 壓縮* 而非 DCC。當您使用 DCC 時，會看到 **DCC Eliminate**。當您同時使用 DCC 與紋理相容性時，這裡不會顯示任何內容，而且您可以省下 DCC Eliminate 的成本。

**圖 16. PIX Velocity Buffer。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n16.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=17583758c3f559e8d723791a8000150f" alt="PIX Velocity Buffer" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n16.png" />

此紋理可能很適合使用 DCC。圖 16 顯示該轉譯目標為 Velocity Buffer，這類緩衝區通常可壓縮。在此例中，轉譯目標幾乎全黑，其餘部分則幾乎是相同的灰色。在一款遊戲中，有兩位開發人員表示這個警告可能是個失誤。在開發初期，他們遇到過 DCC 的錯誤。在另一款遊戲中，團隊也因為尚未解決的錯誤而在某些情況下關閉 DCC。其他遊戲也回報遇到 Fast Clear Eliminate 警告。其中有些案例帶來了改善，有些則沒有。這可能是 ATG 需要進一步調查的事項，也可能在最初做出這些決定後已經修正。

<a id="demo-57-unbound-render-target" />

## 示範五：未繫結的轉譯目標

本節說明 **Remove Unbound RTVs from Shader/PSO** 警告及未繫結的轉譯目標。

**圖 17. PIX 未繫結的轉譯目標。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n17.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=7b71d638378c3f55c343e7eb1aae742d" alt="PIX 未繫結的轉譯目標" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n17.png" />

圖 17 顯示 **Remove Unbound RTVs from Shader/PSO** 警告。選取 Global ID #4474 連結會前往觸發此警告的連結事件。

**圖 18. Pipeline 檢視中的 PIX 連結事件。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n18.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=9d33993fa0ea0b36c29b7b4b0df6276a" alt="Pipeline 檢視中的 PIX 連結事件" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n18.png" />

圖 18 顯示連結事件的 Pipeline 檢視。其中有兩個轉譯目標：RTV 0 與 RTV 1。RTV 0 為黑色，表示檢查通過。不過，RTV 1 為紅色，表示有問題。

**圖 19. PIX 匯出至 mrt1 的程式行。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n19.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=5e88fd9efc4c17a67838f1612a820f5f" alt="PIX 匯出至 mrt1 的程式行" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n19.png" />

圖 19 在視窗底部顯示匯出至 mrt1 的程式碼行。

此擷取沒有符號，因此像素著色器 (PS) 只有 GPU 指令可用。透過回溯暫存器，您可以看到匯出至 RTV 1 的值是如何計算的。原本預期 RTV 1 已繫結，但實際上並未繫結。

**圖 20. PIX 語法醒目提示。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n20.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=9d6430ce00f2df396952fc04670e89e0" alt="PIX 語法醒目提示" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n20.png" />

透過 PIX 中的語法醒目提示，您可以在圖 20 中看到該匯出的計算成本有多高。

此案例中有兩個問題。

* 匯出不需要的內容，以及相關的效能成本。
* 計算匯出值的運算是浪費的成本。

兩款樣本遊戲都出現了 Remove Unbound RTVs from Shader/PSO 警告。其中一款遊戲表示值得修正，另一款則表示不值得。之所以沒有修正，是因為下列兩個因素的組合。

* 它只短暫發生。
* 修正它需要新的 PS，這會增加記憶體用量與複雜度。

兩種反應都很合理。

<a id="demo-67-unused-vs-exports" />

## 示範六：未使用的 VS 匯出

本節說明 **The VS Exports Only Parameters which are Needed by the PS** 警告。

**圖 21. PIX 未使用的 VS 匯出警告。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n21.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=5134364785723cdfdce9c365ec7c634d" alt="PIX 未使用的 VS 匯出警告" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n21.png" />

圖 21 顯示 **The VS Exports Only Parameters which are Needed by the PS** 警告。

這個警告與 **Remove Unbound RTVs from Shader/PSO** 警告互補。在後者中，PS 匯出了不必要的內容。而在 **The VS Exports Only Parameters which are Needed by the PS** 警告中，頂點著色器 (VS) 也匯出了不必要的內容。圖 22 中選取的案例指出 VS 有兩個參數，但 PS 匯入了零個。

您可以選取連結，查看 PS 為何只匯入 0 個。

**圖 22. Pipeline 檢視中的 PIX 繪製呼叫。**

<img src="https://mintlify.s3.us-west-1.amazonaws.com/microsoft-4404708b/images/gdk/features/graphics/gr01-n22.png" alt="Pipeline 檢視中的 PIX 繪製呼叫" />

圖 22 顯示 Pipeline 檢視中的 *繪製呼叫*。

選取該連結會帶您前往 Pipeline 檢視中的繪製呼叫。

**圖 23. PIX 未繫結的像素著色器。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n23.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=601dd94be77b1fb8ab5b7dc327f40145" alt="PIX 未繫結的像素著色器" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n23.png" />

圖 23 顯示 PS 未繫結，且此事件僅限深度。

VS 中的最後幾項是匯出至參數 0 與參數 1。

由於沒有 PS 來接收，VS 寫入的除了位置以外的任何內容都是浪費的。如果您回溯這些匯出，會發現背後有大量的計算。它們並非匯出常數。此案例有兩個問題。

* 匯出不需要匯出的參數會占用參數快取的空間。
* 匯出的參數是可能相當冗長的計算結果，而這些計算也被浪費了。

在一個案例中，團隊想要修正此問題，因為這是僅限深度的轉譯。該團隊回報他們已在 PC 上修正此問題，效果很好。他們想在 XBOX 上嘗試。

另一個團隊則有不同的案例，其中並未進行轉譯。他們認為修正這個問題不值得。這很合理，因為這涉及分支 VS、產生更多 VS 執行個體，以及相關的成本。其他遊戲也會收到此警告，而效能影響各不相同。

<a id="demo-77-nearly-empty-wave64" />

## 示範七：幾乎空白的 wave64

本節說明 **Use Wave32 for threadgroups of size 32 or less** 警告及幾乎空白的 wave64。

<Note>
  此警告之後已擴大涵蓋更多情況，名稱也隨之變更。
</Note>

**圖 24. PIX 幾乎空白的 wave64。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n24.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=87ae8128e17665209df507b261647b66" alt="PIX 幾乎空白的 wave64" width="1280" height="698" data-path="images/gdk/features/graphics/gr01-n24.png" />

圖 24 顯示 **Use Wave32 for threadgroups of size 32 or less** 警告。

**圖 25. PIX 階段內的 Dispatch。**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/gr01-n25.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=47e347fff271c5a29164983ceab9992d" alt="PIX 階段內的 Dispatch" width="1232" height="720" data-path="images/gdk/features/graphics/gr01-n25.png" />

圖 25 顯示在 Checklist 檢視中選取其中一個案例後，會帶您前往某個階段 (pass) 內的 dispatch。不過，這裡出現了奇怪的情況。根據計數器欄位，此階段有 123 個執行緒群組、123 個 wave 及 123 個執行緒。而其中的所有內容都是 dispatch(1,1,1)。此階段只有包含一個執行緒群組的 dispatch，每個執行緒群組包含一個 wave，每個 wave 包含一個執行緒。其他所有執行緒都被浪費了。此警告告訴您，與其在 Wave64 中每 64 個執行緒浪費 63 個，不如只在每 32 個執行緒中浪費 31 個。雖然您可以這麼做，但這並不會讓已經很糟的情況好多少。此警告仍有價值，因為它告訴您正在做一件奇怪的事。

<a id="wrap-up" />

## 總結

### PIX Checklist 正在積極開發中

PIX 小組正在積極開發 PIX Checklist。您的意見回饋非常重要。ATG 小組在進行效能審查時會使用 PIX Checklist，留意誤判並了解問題所在。PIX 小組仍持續更新 Checklist，並持續提出新的警告。我們鼓勵您繼續使用它。

### 我們對您的請求

PIX Checklist 的開發會受到您意見回饋的影響。

1. 在您的擷取內容上執行 PIX Checklist。
2. 透過 PIX 意見回饋按鈕、論壇或您的 Microsoft 聯絡人，將有幫助與沒有幫助的功能意見回饋給我們。開發人員最常在出問題時提供意見回饋。PIX 小組也需要知道哪些功能運作良好，才能了解要繼續投入哪些工作。
3. 要求新的測試。現在您已經了解可以進行哪些類型的測試，請將您對其他實用測試的想法提供給我們。

### 未來計畫

以下是 PIX 小組考慮在未來推出的一些功能。

* **使用者可設定的警告閾值**：例如，某個警告可能只有在出現 100 次時才有幫助。不過，其他開發人員可能只需要出現五次就發出警告的閾值。
* **將 Checklist 檢視擴展到其他類型的擷取**：例如，當您在一定數量的畫面中低於目標畫面播放速率時，偵測到此情況的 System Monitor 警告。這會建立 GPU 擷取。
* **Timing Capture Checklist 檢視**：它會提供指出 PIX Timing Capture 中失敗項目的警告。

<a id="next-steps" />

## 後續步驟

若要檢閱與本概觀相關的簡報資料資訊，請從 [XBOX Developer Download Secure Data Storage (SDS)](https://www.microsoft.com/en-us/software-download/gdk) 下載下列檔案。

* 投影片：Xfest 2022 Graphics Track PowerPoints (Xfest2022GfxPPTs.ZIP) 中的 GR01\_A Tour of the New PIX Checklist - GPU Performance Made Easy.pptx
* 視訊簡報：Xfest 2022 Graphics Track Videos (Xfest2022GfxVids.ZIP) 中的 GR01.mp4

### 下載 Microsoft PowerPoint 簡報與視訊

1. 前往 [Game Development Kit (GDK) 下載](https://www.microsoft.com/en-us/software-download/gdk)。
2. 在 <b>Select file type</b> 下，選取 **Conference Materials**，然後選取 **Confirm**。
3. 在 <b>Select build/version number</b> 下，選擇下列其中一個圖形簡報。
   * Xfest 2022 Graphics Track PowerPoints
   * Xfest 2022 Graphics Track Videos
4. 選取 <b>Download Now</b>，然後等待 .zip 檔案下載完成。
5. 前往您本機的「下載」資料夾，然後從壓縮資料夾中解壓縮 (擷取) 檔案。

<a id="see-also" />

## 另請參閱

[PIX](/zh-TW/tools/tools-console/pix/pix)


## Related topics

- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
- [存取 GDK 資源與下載](/zh-TW/home/onboarding-access/access-resources.md)
- [GDK 名詞與縮寫詞彙表](/zh-TW/home/glossary.md)
- [Xfest2022](/build/core-features/graphics/overviews/presentations/xfest2022/index.md)
- [PIX GPU capture and performance analysis](/tools/tools-console/pix/gpu/index.md)
