Igalia 的开发人员 Danylo Piliaiev 发现谷歌去年悄悄地开源了图形飞行记录器 (Graphics Flight Recorder-GFR)。GFR 作为隐式 Vulkan 层实现,用于追踪和识别 GPU 挂起和崩溃问题,可在 Windows 和 Linux 上运行。
GFR 通过向 Vulkan 命令缓冲区添加标记,检测到错误时 GFR 会自动从这些命令缓冲区生成日志转储——并将转储反馈到脚本,以重新生成源文件。Danylo 指出 GFR 在解决一些挂起问题方面很有用,他已经用这个软件轻松地解决了 “Alien: Isolation” 和 “Digital Combat Simulator” 这两款游戏的挂起问题,建议其他开发人员也试一试。
据外媒 Phoronix 介绍, GFR 的优势在于它作为 Vulkan 层的开销很低,足以让它一直保持激活状态,直到发生 GPU 挂起/崩溃。不过它也存在一些缺点:
- 对不可恢复的挂起没啥用处,因为没办法返回标记。
- 如果在 GPU 并行运行 draw/dispatch 调用,写标记会导致它们变成顺序执行,或出现精度问题。
- 依赖于 VK_AMD_buffer_marker Vulkan 扩展,该扩展虽然使用轻松,但目前并未得到广泛支持。
另外,小编注意到一个有意思的事情,GFR 的开发者 GoogleStadia 是实打实的谷歌旗下的云游戏平台,然而 GFR 的 GitHub 主页介绍清清楚楚地写着 “这不是官方支持的 Google 产品”。到底是啥原因导致 Google 不愿给 GFR 一个名分呢?
附 GFR 的 GitHub 主页:https://github.com/googlestadia/gfr
本文地址:https://www.oschina.net/news/177203/google-graphics-flight-recorder