Graphics 调试工具 GAPID(一)简介

GAPID是一款用于检查、微调和重播应用程序对图形驱动API调用的工具,适用于Android和桌面Vulkan应用。它包括gapii、gapis、gapir和gapic等组件,能够跟踪和分析图形API的使用,支持跨平台编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夕月风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值