MCPcopy Index your code
hub / github.com/google/gapid

github.com/google/gapid @v1.6.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.6.1 ↗
15,748 symbols 54,111 edges 1,567 files 6,066 documented · 39%
README

GAPID: Graphics API Debugger

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

Downloads

Download the latest version of GAPID 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.

Extension points exported contracts — how you extend this code

Target (Interface)
Target is the interface for an object that supports execution of Commands. [12 implementers]
core/os/shell/target.go
Handler (Interface)
Handler is the handler of log messages. [6 implementers]
core/log/handler.go
Fit (Interface)
Fit represents a complexity fit for the samples. [106 implementers]
core/app/benchmark/complexity.go
FormatProvider (Interface)
FormatProvider is the interface implemented by servers that support whole-document reformatting. [15 implementers]
core/langsvr/langsvr.go
Key (Interface)
Key is a unique identifier for headers and cells. [6 implementers]
test/robot/web/client/widgets/grid/data.go
Plugin (Interface)
Plugin is a extension for the compiler. [12 implementers]
gapil/compiler/plugin.go
Statement (Interface)
Statement is the interface implemented by all statement types. [22 implementers]
gapil/semantic/statement.go
Client (Interface)
Client is the interface used for service calls. [35 implementers]
gapis/client/client.go

Core symbols most depended-on inside this repo

For
called by 961
core/assert/manager.go
Ptr
called by 561
gapis/api/state.go
Get
called by 540
gapis/api/watcher.go
append
called by 463
gapic/src/main/com/google/gapid/views/Formatter.java
That
called by 462
core/assert/value.go
Equals
called by 369
gapil/analysis/value.go
Index
called by 368
gapis/api/api.go
get
called by 335
gapic/src/main/com/google/gapid/server/GapidClient.java

Shape

Method 10,211
Function 2,806
Struct 1,398
Class 515
TypeAlias 378
Interface 338
FuncType 77
Enum 25

Languages

Go73%
Java26%
TypeScript1%

Modules by API surface

gapis/service/path/path.go219 symbols
gapil/bapi/encode.go145 symbols
gapil/bapi/decode.go142 symbols
gapic/src/main/com/google/gapid/views/MemoryView.java127 symbols
gapil/semantic/expression.go119 symbols
gapic/src/main/com/google/gapid/widgets/Theme.java115 symbols
gapic/src/main/com/google/gapid/widgets/ImagePanel.java104 symbols
gapic/src/main/com/google/gapid/image/ArrayImage.java101 symbols
core/codegen/types.go97 symbols
gapil/semantic/type.go96 symbols
gapis/replay/opcode/opcodes.go93 symbols
gapis/api/vulkan/state_rebuilder.go84 symbols

Dependencies from manifests, versioned

vscode-languageclient2.3.0 · 1×

For agents

$ claude mcp add gapid \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact