Go C++ Java CMake C Protocol Buffer Other
Switch branches/tags
Nothing to show
Permalink
Failed to load latest commit information.
cmake Add ASTC support via the astc-encoder library. May 16, 2017
cmd Bump the minor version to signify builds post the major proto changes. May 16, 2017
core Fix adb root issue on certain devices / OSes. May 16, 2017
gapic Path following in the command tree. May 16, 2017
gapidapk Replace glob .gitignore for *.pb.go with explicit ignores. (#310) Apr 26, 2017
gapii Added a mode to gapit to only trace a single API. May 10, 2017
gapil Silence the very chatty build May 16, 2017
gapir gapir: Include the atomID when printing KHR_debug msgs May 16, 2017
gapis gapis / gapit: Pretty-print pointers. May 16, 2017
kokoro Kokoro mac build definition. May 13, 2017
test Change ReportItem.command from a uint64 to a path.Command. May 16, 2017
third_party Windows build fixes for the ASTC 3rd party library. May 16, 2017
.gitignore Kill codergen, snippets and annotate. May 16, 2017
.gitmodules Add astc-encoder as a third_party submodule May 16, 2017
BUILDING.md Update BUILDING.md (#199) Apr 3, 2017
CMakeLists.txt Add ASTC support via the astc-encoder library. May 16, 2017
CMakeProto.cmake Kill codergen, snippets and annotate. May 16, 2017
CONTRIBUTING.md Initial commit of GAPID project Feb 21, 2017
LICENSE Initial commit of GAPID project Feb 21, 2017
README.md Add component diagram to the Overview section. (#194) Mar 31, 2017
do Show an error message in 'do' in case of bad checkout. (#82) Mar 14, 2017
do.bat Show an error message in 'do' in case of bad checkout. (#82) Mar 14, 2017

README.md

GAPID: Graphics API Debugger

GoDoc

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.

Screenshot 1 Screenshot 2
Screenshot 3 Screenshot 4

Status

GAPID is still in development but already can be used to debug many Android OpenGL ES and Vulkan applications.

The UI runs on Windows, Linux and MacOS and can currently be used to trace on Android. We also plan to be able to trace OpenGL ES and Vulkan applications on hosts that support those APIs.

Downloadable prebuilts will be available once the project reaches the beta milestone.

Detailed current status for Vulkan can be found here.

Building

See Building GAPID.

Running the client

Windows MacOS / Linux
cd %GOPATH%\src\github.com\google\gapid
do run gapic
cd $GOPATH/src/github.com/google/gapid
./do run gapic

Overview

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.

components

The GAPII, GAPIS, GAPIR and GAPIC components can all run on different (or the same) device, allowing for distrubuted workflows.