当前位置: 首页 > 工具软件 > GAPID > 使用案例 >

Graphics 调试工具 GAPID(一)简介

汝天宇
2023-12-01

Graphics Debug Tool GAPID

GAPID (Grapphics API Debugger) 是一系列的Graphics调试工具,可以检查,微调,重播应用对图形驱动的API调用。

GAPID 可以跟踪Android任何可以调试的应用,即android:debuggable = true.或者有root权限,任何应用都可以trace。

GAPID 也可要trace任何的桌面Vulkan应用。

GAPID 是前面的OpenGL trace的升级,且跨平台

编译GAPID

源码下载:

git clone https://github.com/google/gapid.git

GAPID用的Bazel编译系统,参考:

安装Bazel:

https://github.com/google/gapid/blob/master/BUILDING.md#linux

编译Gapid:

https://github.com/google/gapid/blob/master/BUILDING.md#building-gapid

需要注意的是,需要 Android 21的API, 要不会报错:

 Android SDK api level 21 was requested

直接安装

GAPID的编译很慢,如果只是单纯的使用,没有必要自己去编译,可以直接下载安装发布的release版本:

https://github.com/google/gapid/releases

我用的Ubuntu平台,直接下载deb包

gapid组成

编译完成后,编译结果在<gapid-root>/bazel-bin/pkg/gapid。gapid包含了一下子组件:

  • gapii: Graphics API拦截
    出于应用和GPU驱动间,录制所有的调用和内存访问。

  • gapis: Graphics API服务
    一个独立的进程,分析抓取的流,上报错误的API使用,处理数据在不同的设备上replay,且体统RPC接口。

  • gapir: Replay守护进程
    提供基于栈的播放,模仿应用调用GPU驱动,支持回读,提供性能分析。

  • gapic:客户端
    提供可见的操作

  • gapil: GAPI 语言

GAPID的使用

GAPID是一个单独的程序,就交GAPID,启动~

使用具体参考:

https://google.github.io/gapid/about/

需要注意的是:

  • A device running Android Lollipop 5.0 (or more recent).
  • Either a debuggable application, or a device running a ‘rooted’ user-debug build.
  • Android SDK installed on the host machine.
  • Android hardware device connected through USB.
  • The device must have USB debugging enabled and the host machine must be authorized for debugging.

另外,Android Studio是不能同时用的,得关掉。要不在GAPID中找不到device。

 类似资料: