GAPID is not currently under active development. Issues filed against this repo might not be answered.
For Android GPU debugging and profiling, please use AGI which is based on GAPID.
Download the latest version of GAPID here.
Unstable developer releases are here.
User documentation can be found at gapid.dev
The developer documentation contains some hints for GAPID developers. See also the README files under some source directories.
GAPID is a collection of tools that allows you to inspect, tweak and replay calls from an application to a graphics driver.
GAPID can trace any Android debuggable application, or if you have root access to the device any application can be traced. GAPID can also trace any desktop Vulkan application.
![]() |
![]() |
![]() |
![]() |
See Building GAPID.
After building GAPID, you can run the client from <gapid-root>/bazel-bin/pkg/gapid
.
GAPID exposes most of its functionality via a CLI gapit. You can find auto-generated documentation here.
GAPID consists of the following sub-components:
gapii
: Graphics API InterceptorA layer that sits between the application / game and the GPU driver, recording all the calls and memory accesses.
gapis
: Graphics API ServerA process that analyses capture streams reporting incorrect API usage, processes the data for replay on various target devices, and provides an RPC interface to the client.
gapir
: Graphics API Replay daemonA stack-based VM used to playback capture files, imitating the original application’s / game's calls to the GPU driver. Supports read-back of any buffer / framebuffer, and provides profiling functionality.
gapic
: Graphics API ClientThe frontend user interface application. Provides visual inspection of the capture data, memory, resources, and frame-buffer content.
gapil
: Graphics API LanguageA new domain specific language to describe a graphics API in its entirety. Combined with our template system to generate huge parts of the interceptor, server and replay systems.