Igalia 的開發人員 Danylo Piliaiev 谷歌去年悄悄地開源了圖形飛行記錄器 (Graphics Flight Recorder-GFR)。GFR 作為隱式 Vulkan 層實現,用於追蹤和識別 GPU 掛起和崩潰問題,可在 Windows 和 Linux 上執行。
GFR 通過向 Vulkan 命令緩衝區新增標記,檢測到錯誤時 GFR 會自動從這些命令緩衝區生成紀錄檔轉儲——並將轉儲反饋到指令碼,以重新生成原始檔。Danylo GFR 在解決一些掛起問題方面很有用,他已經用這個軟體輕鬆地解決了 「Alien: Isolation」 和 「Digital Combat Simulator」 這兩款遊戲的掛起問題,建議其他開發人員也試一試。
據外媒 , GFR 的優勢在於它作為 Vulkan 層的開銷很低,足以讓它一直保持啟用狀態,直到發生 GPU 掛起/崩潰。不過它也存在一些缺點:
- 對不可恢復的掛起沒啥用處,因為沒辦法返回標記。
- 如果在 GPU 並行執行 draw/dispatch 呼叫,寫標記會導致它們變成順序執行,或出現精度問題。
- 依賴於 VK_AMD_buffer_marker Vulkan 擴充套件,該擴充套件雖然使用輕鬆,但目前並未得到廣泛支援。
另外,小編注意到一個有意思的事情,GFR 的開發者 GoogleStadia 是實打實的谷歌旗下的雲遊戲平臺,然而 GFR 的 介紹清清楚楚地寫著 「這不是官方支援的 Google 產品」。到底是啥原因導致 Google 不願給 GFR 一個名分呢?
附 GFR 的 GitHub 主頁: