Skip to content
Graphics API Debugger
Go Java C++ Objective-C Starlark HTML Other
Branch: master
Clone or download

Latest commit

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates (#3548) Dec 13, 2019
.settings Get eclipse to pickup the project settings again. Nov 26, 2018
cmd Make SXS video work with PNG output. Mar 9, 2020
core
gapic Converts "~" character to user home while saving trace file (#122) Mar 12, 2020
gapidapk Remove internet permission of the apk. (#75) Mar 12, 2020
gapii Fixes the pipeline barrier for getting framebuffer during trace (#115) Mar 12, 2020
gapil Cut the apic -> gapis/api dependency. Feb 6, 2020
gapir VK_KHR_timeline_semaphore support. Mar 9, 2020
gapis Avoid remapping nullptr. Mar 13, 2020
kokoro Open .perfetto files with GAPID by default. Mar 12, 2020
test This is a general refactoring regarding the gapis-gapir connection (#… Jan 27, 2020
tools/build Update perfetto to fix segmentation fault in trace processor (#102) Mar 12, 2020
.bazelignore Improve gofuse (#2448) Dec 12, 2018
.bazelrc Update Kokoro script to Bazel 1.2.0 and Android NDK r20b (#3432) Nov 22, 2019
.bazelversion Add a .bazelversion file. (#3771) Feb 7, 2020
.clang-format Force pointer tokens (* and &) left and reformat. Oct 31, 2019
.classpath Proto-ize and version the UI settings. Jan 9, 2020
.gitignore Provides a git friendly way to use local repositories. Dec 26, 2019
.project Update Eclipse project files for new bazel layout. Dec 12, 2019
BUILD.bazel Build symbol files for gapir so that we can get a clear debug informa… Feb 4, 2020
BUILDING.md Use Android NDK r21 and VK_LAYER_KHRONOS_validation (#61) Mar 12, 2020
CONTRIBUTING.md Add contributing guidelines per b/138973070. Aug 27, 2019
DEVDOC.md Update DEVDOC.md for delve (#3720) Feb 5, 2020
LICENSE Initial commit of GAPID project Feb 21, 2017
README.md Update readme: not under active development May 14, 2020
WORKSPACE Provides a git friendly way to use local repositories. Dec 26, 2019
version.bzl Stop using the deprecated `attr.single_file`. Jun 24, 2019

README.md

GAPID: Graphics API Debugger

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

Maintenance Mode

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.

Downloads

Download the latest version of GAPID here.

Unstable developer releases are here.

Documentation

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.

About

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

Building

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.