Google 最近发布并开源了 GAPID,这是一个工具合集,允许检查、调整和重复从应用程序到 Graphics 驱动之间的调用。
GAPID 采用 Go 语言编写,目前仍在开发中,但已经可以用于调试许多 Android OpenGL ES 和 Vulkan 应用。
GAPID 由以下子工具/组件构成:
gapii:Graphics API 拦截器 —— 位于应用程序/游戏和 GPU 驱动程序之间的一层,记录所有调用和内存访问。
gapis:Graphics API 服务器 —— 分析报告不正确的捕获流 API 使用情况,处理在各种目标设备上重复过程的数据,并向客户端提供 RPC 接口。
gapir:Graphics API Replay 守护 —— 一个基于堆栈的 VM,用于回放捕获文件,模仿原始应用程序/游戏对 GPU 驱动程序的调用。支持读取任何缓冲区/帧缓冲区,并提供分析功能。
gapic:Graphics API 客户端 —— 前端用户界面应用。提供捕获数据、内存、资源和帧缓冲区内容的可视化检查。
gapil:Graphics API 语言 —— 一种新的特定领域语言,用于全面描述图形 API。拦截器、服务器和重复系统的绝大部分都是依赖它结合模板生成的。