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