Google 最近發(fā)布并開源了 GAPID,這是一個工具合集,允許檢查、調(diào)整和重復從應(yīng)用程序到 Graphics 驅(qū)動之間的調(diào)用。
GAPID 采用 Go 語言編寫,目前仍在開發(fā)中,但已經(jīng)可以用于調(diào)試許多 Android OpenGL ES 和 Vulkan 應(yīng)用。
GAPID 由以下子工具/組件構(gòu)成:
gapii:Graphics API 攔截器 —— 位于應(yīng)用程序/游戲和 GPU 驅(qū)動程序之間的一層,記錄所有調(diào)用和內(nèi)存訪問。
gapis:Graphics API 服務(wù)器 —— 分析報告不正確的捕獲流 API 使用情況,處理在各種目標設(shè)備上重復過程的數(shù)據(jù),并向客戶端提供 RPC 接口。
gapir:Graphics API Replay 守護 —— 一個基于堆棧的 VM,用于回放捕獲文件,模仿原始應(yīng)用程序/游戲?qū)?GPU 驅(qū)動程序的調(diào)用。支持讀取任何緩沖區(qū)/幀緩沖區(qū),并提供分析功能。
gapic:Graphics API 客戶端 —— 前端用戶界面應(yīng)用。提供捕獲數(shù)據(jù)、內(nèi)存、資源和幀緩沖區(qū)內(nèi)容的可視化檢查。
gapil:Graphics API 語言 —— 一種新的特定領(lǐng)域語言,用于全面描述圖形 API。攔截器、服務(wù)器和重復系統(tǒng)的絕大部分都是依賴它結(jié)合模板生成的。