GAPID

图形 API 调试器。(Graphics API Debugger)

Github stars Tracking Chart

GAPID:图形API调试器

下载

在这里下载最新版本的 GAPID。

文档

用户文档可以在 gapid.dev 找到

开发人员文档 为 GAPID 开发人员提供了一些提示。另请参阅某些源目录下的 README 文件。

关于

GAPID是一组工具,允许您检查、调整和回放从应用程序到图形驱动程序的调用。

GAPID可以跟踪任何 Android 可调试应用程序,或者如果您拥有对设备的根访问权,则可以跟踪任何应用程序。GAPID 还可以跟踪任何桌面 Vulkan 应用程序。

构建

请参阅 构建 GAPID

运行客户端

构建 GAPID 后,您可以从 /bazel-bin/pkg/gapid 运行客户端。

命令行界面

GAPID 通过 CLI gapit 公开其大部分功能。您可以在此处找到自动生成的文档。

项目结构

GAPID 由以下子组件组成:

gapii:图形 API 拦截器

位于应用程序/游戏和GPU驱动程序之间的层,记录所有调用和内存访问。

gapis:图形 API 服务器

分析报告错误 API 使用的捕获流的过程,处理数据以在各种目标设备上重放,并为客户端提供RPC接口。

gapir:Graphics API 重播守护进程

基于堆栈的 VM,用于回放捕获文件,模仿原始应用程序/游戏对 GPU 驱动程序的调用。支持任何缓冲区/帧缓冲区的回读,并提供分析功能。

gapic:图形 API 客户端

前端用户界面应用程序。提供对捕获数据,内存,资源和帧缓冲区内容的可视检查。

gapil:图形 API 语言

一种新的特定于域的语言,用于完整地描述图形API。结合我们的模板系统,生成拦截器,服务器和重放系统的巨大部分。

(First edition: vz edited at 2019.08.24)

Overview

Name With Ownergoogle/gapid
Primary LanguageGo
Program languageGo (Language Count: 15)
PlatformLinux, Mac, Windows
License:Apache License 2.0
Release Count28
Last Release Namev1.7.0-dev-20191021 (Posted on )
First Release Namev0.4.0 (Posted on 2017-07-14 13:37:06)
Created At2017-02-14 11:18:43
Pushed At2024-05-08 03:22:01
Last Commit At2022-06-06 09:49:01
Stargazers Count2.2k
Watchers Count98
Fork Count327
Commits Count4.2k
Has Issues Enabled
Issues Count1256
Issue Open Count321
Pull Requests Count2445
Pull Requests Open Count3
Pull Requests Close Count223
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

GAPID: Graphics API Debugger

GoDoc
Gitter

Linux Build Status

MacOS Build Status

Windows Build Status

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.

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.

To the top