在與 ATG 合作之前,請一律先透過您的開發人員關係聯絡人 / DPM。他們可以提供大量資源,可能在問題提報之前就協助您解決問題。
準備 GPU 效能分析
1. 要傳送的內容
ATG 可以分析您提供的 PIX 擷取,也可以從您遊戲的組建自行進行 PIX 擷取。強烈建議由您提供擷取,如此 ATG 就能立即開始分析,而不必先架設遊戲、處理測試帳戶,以及尋找具代表性的遊戲位置。擷取時間越少 = 分析時間越多。2. 事先傳送 PIX 擷取
請在排定的合作數天前提供 PIX 擷取。這讓 ATG 有時間確認資料完整,以及其 PIX 組建與您擷取時所用的版本相容。3. 使用最新的 PIX 與 OS Recovery (建議)
最新的 PIX 與 OS Recovery 提供分析改進、穩定性修正、更快的反覆運算速度及新功能 (DXR、VRS)。您不需要安裝最新的 GDK 或重新建置遊戲,GDK Tools 另有單獨的下載。4. 包含 XBOX Series S 擷取 (建議)
合作通常著重於 Series X。請加入 Series S 擷取,讓 ATG 能找出在 Series X 上不會出現的效能改善機會。5. 在 GPU 擷取中包含著色器符號 (建議)
著色器符號可實現更深入的分析、著色器最佳化建議、著色器編譯器程式碼產生的意見回饋,以及 PIX Shader Edit and Continue 實驗。請使用 Slim PDB (以/Zs 編譯),其速度更快、檔案更小。您不需要另外提供 PDB 檔案;只要在 PIX 設定中正確設定 Symbols Path,儲存擷取時就會內嵌符號。
6. 最壞情況的 GPU 擷取 (必要)
GPU 擷取必須能代表遊戲最吃力的場景。這能讓效能問題容易識別,避免 ATG 遺漏重要問題,並產生優先順序更佳的建議清單。7. 停用動態解析度縮放 (必要)
進行 GPU 擷取時,請停用動態解析度縮放。請在所有轉譯階段以最高目標解析度擷取,讓 ATG 看到每個階段真正的最壞情況成本。8. 定義 PIX 具名事件 (必要)
PIX 標記與括號是必要的。它們能讓 ATG 識別子系統、將工作對應至您的引擎,並迅速提供可執行的意見回饋。9. 使用資源名稱 (選擇性)
使用ID3D12Object::SetName() 為資源命名。為轉譯目標、紋理和緩衝區設定有意義的名稱,可讓每個繪製與分派的用途一目了然。
10. GPU Trace 擷取 (建議)
PIX GPU Trace 擷取是 XBOX Series X|S 上提供的輕量型分析擷取。它們會在遊戲執行時記錄多個畫面,並將 CPU/GPU/記憶體的互動納入考量。與 GPU Capture 不同,Trace 是獨立完整的,擷取檔案無需連線至開發套件即可重新播放。11. PIX Timing 擷取 (選擇性)
當懷疑 CPU↔GPU 同步、呈現時間、畫面節奏或延遲有問題時,Timing 擷取很有用。12. 為跨畫面非同步計算擷取兩個 GPU 畫面 (建議)
如果非同步計算橫跨兩個畫面 (畫面 N 結尾 → 畫面 N+1 開頭),請包含雙畫面擷取,讓 ATG 看到完整的相依性鏈結。13. DXR (必要)
在 PIX 中啟用 Capture All GPU Mapped Memory,讓整個加速結構都包含在內。根據預設,只會擷取 GPU 存取過的頁面,這不足以進行 DXR 分析。 在 2023 年 6 月之前的 GDK 上,請使用SetCompileTimeShaderPdbPathX 為 DXR 產生著色器 PDB。
