Skip to content
Graphics API Debugger
Go C++ Java C Python HTML Other
Branch: master
Clone or download
hliatis Allow user to specify which frame to start (#3074)
* Changes in the dialog

* Fix enable/disable cases

* Have Interactive Mode be default

* Make sure Start format doesn't flip when capturing a new trace
Latest commit 9802904 Aug 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.settings Get eclipse to pickup the project settings again. Nov 26, 2018
cmd Allow searching by context name (#3073) Aug 16, 2019
core Recognize more Android versions. (#3087) Aug 20, 2019
gapic Allow user to specify which frame to start (#3074) Aug 24, 2019
gapidapk Adding a new auto-generated layer system. Aug 12, 2019
gapii Disables the new warning added by GCC 8. (#3066) Aug 21, 2019
gapil Disables the new warning added by GCC 8. (#3066) Aug 21, 2019
gapir Fix for #3083. OnDiskResourceCache now prefetches all data up front. (#… Aug 21, 2019
gapis Don't crash if a uniform references an invalid texture unit. Aug 23, 2019
kokoro Disables the new warning added by GCC 8. (#3066) Aug 21, 2019
test Create a database key to fix name collusion on loading captures (#3078) Aug 19, 2019
tools/build Upgrade perfetto version. (#3101) Aug 21, 2019
.bazelignore Improve gofuse (#2448) Dec 12, 2018
.bazelrc Make bazel use Python 2 for genrules using Python executable targets. Jun 24, 2019
.classpath Fix the unable to connect server problem when launching with Eclipse. Aug 9, 2019
.gitignore Git ignore Perfetto trace files. Apr 4, 2019
.project Make the .project file work better. Apr 18, 2019
BUILD.bazel Adding a new auto-generated layer system. Aug 12, 2019 Update the building instructions with the new bazel version. May 20, 2019 Upgrade perfetto version. (#3101) Aug 21, 2019 Document delve init script (#3025) Aug 7, 2019
LICENSE Initial commit of GAPID project Feb 21, 2017 Auto-generate docs for GAPIT (#2790) Jun 7, 2019
WORKSPACE Update to newer version of rules_go and gazelle. May 20, 2019
version.bzl Stop using the deprecated `attr.single_file`. Jun 24, 2019

GAPID: Graphics API Debugger

GoDoc Gitter Linux Linux Build Status MacOS MacOS Build Status Windows Windows Build Status


Download the latest version of GAPID here.


User documentation can be found at

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.

Screenshot 1 Screenshot 2
Screenshot 3 Screenshot 4


See Building GAPID.

Running the client

After building GAPID, you can run the client from <gapid-root>/bazel-bin/pkg/gapid.

Command-Line Interface

GAPID exposes most of its functionality via a CLI gapit. You can find auto-generated documentation here.

Project Structure

GAPID consists of the following sub-components:

gapii: Graphics API Interceptor

A layer that sits between the application / game and the GPU driver, recording all the calls and memory accesses.

gapis: Graphics API Server

A 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 daemon

A 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 Client

The frontend user interface application. Provides visual inspection of the capture data, memory, resources, and frame-buffer content.

gapil: Graphics API Language

A 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.

You can’t perform that action at this time.