agi

module
v3.0.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 20, 2022 License: Apache-2.0

README

Android GPU Inspector

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

About

Visit gpuinspector.dev for information about Android GPU Inspector.

The developer documentation contains some hints for AGI developers. See also the README files under some source directories.

Downloads

Download the latest version of AGI here.

Unstable developer releases are here.

Dependency for Linux builds in zip archives: they depend on java8 and libwebkit2gtk. These two are marked as dependencies in the deb package, if you install AGI via a zip archive, make sure to also install java8 and libwebkit2gtk.

Building

See Building Android GPU Inspector.

Running the client

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

Command-Line Interface

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

Directories

Path Synopsis
cmd
agi
The gapid command launches the GAPID UI.
The gapid command launches the GAPID UI.
apic
Package format registers and implements the "format" apic command.
Package format registers and implements the "format" apic command.
benchmark
The embed command is used to embed text files into Go executables as strings.
The embed command is used to embed text files into Go executables as strings.
embed
The embed command is used to embed text files into Go executables as strings.
The embed command is used to embed text files into Go executables as strings.
enum_lookup
The enum_lookup command parses its parameters as decimal and/or hex ints and then prints out all the API enums with that value.
The enum_lookup command parses its parameters as decimal and/or hex ints and then prints out all the API enums with that value.
gofuse
gofuse is a utility program to help go tools work with bazel generated files.
gofuse is a utility program to help go tools work with bazel generated files.
img2h
img2h is a utility program that creates C++ headers containing image data.
img2h is a utility program that creates C++ headers containing image data.
linearize_trace
The linearize_trace command takes a trace that has an initial state, and converts it to a trace that is prefixed with all of the commands needed to reset the state in that trace.
The linearize_trace command takes a trace that has an initial state, and converts it to a trace that is prefixed with all of the commands needed to reset the state in that trace.
llvm-build
Command llvm-build generates bazel build rules for the LLVM dependency.
Command llvm-build generates bazel build rules for the LLVM dependency.
make-debuggable
Command make-debuggable takes an apk and makes it debuggable, saving it to a different path.
Command make-debuggable takes an apk and makes it debuggable, saving it to a different path.
regres
Regress is a tool to display build and runtime statistics over a range of changelists.
Regress is a tool to display build and runtime statistics over a range of changelists.
smoketests
The smoketests command runs a series of smoke tests.
The smoketests command runs a series of smoke tests.
update-swt
This is a very brittle script (see giveUp()) that tries to update the swt.bzl and jface.bzl files to upgrade SWT and JFace to a new Eclipse release version.
This is a very brittle script (see giveUp()) that tries to update the swt.bzl and jface.bzl files to upgrade SWT and JFace to a new Eclipse release version.
core
app
Package app provides an opinionated common infrastructure to application structure.
Package app provides an opinionated common infrastructure to application structure.
app/analytics/param
Package param holds Google Analytics parameter names.
Package param holds Google Analytics parameter names.
app/auth
Package auth provides simple token based, stream authorization functions.
Package auth provides simple token based, stream authorization functions.
app/benchmark
Package benchmark provides benchmarking facilities to the standard application system.
Package benchmark provides benchmarking facilities to the standard application system.
app/crash
Package crash provides functions for reporting application crashes (uncaught panics).
Package crash provides functions for reporting application crashes (uncaught panics).
app/flags
Package flag provides extended support for flag parsing.
Package flag provides extended support for flag parsing.
app/layout
Package layout is used to find parts of the application package to load or run.
Package layout is used to find parts of the application package to load or run.
app/linker
Package linker provides functions for findings addresses of app functions by name.
Package linker provides functions for findings addresses of app functions by name.
app/status
Package status provides methods for reporting application status.
Package status provides methods for reporting application status.
codegen
Package codegen provides an interface for code generation using LLVM.
Package codegen provides an interface for code generation using LLVM.
codegen/call
Package call provides methods for invoking C function pointers.
Package call provides methods for invoking C function pointers.
context/keys
Package keys holds code for managing the set of common keys in a context.
Package keys holds code for managing the set of common keys in a context.
data/compare
Package compare has utilities for comparing values.
Package compare has utilities for comparing values.
data/deep
Package deep provides reflection based methods for copying and cloning structs.
Package deep provides reflection based methods for copying and cloning structs.
data/dictionary
Package dictionary provides utilities for operating on map-like types.
Package dictionary provides utilities for operating on map-like types.
data/endian
Package endian implements binary.Reader and binary.Writer for reading / writing simple primivite types from a binary source.
Package endian implements binary.Reader and binary.Writer for reading / writing simple primivite types from a binary source.
data/generic
Package generic provides methods to test whether a type conforms to a generic interface.
Package generic provides methods to test whether a type conforms to a generic interface.
data/id
Package id provides types and functions for generation of identifiers.
Package id provides types and functions for generation of identifiers.
data/pack
Package pack provides methods to deal with self describing files of proto data.
Package pack provides methods to deal with self describing files of proto data.
data/pod
Package pod provides types and functions for dealing with simple structured objects.
Package pod provides types and functions for dealing with simple structured objects.
data/protoconv
Package protoconv provides a mechanism to register functions to convert objects to and from proto messages.
Package protoconv provides a mechanism to register functions to convert objects to and from proto messages.
data/protoutil
Package protoutil adds some helpers that makes using protobuf structures a little easier.
Package protoutil adds some helpers that makes using protobuf structures a little easier.
data/protoutil/testprotos
Package testprotos provides some proto messages that can be used for tests.
Package testprotos provides some proto messages that can be used for tests.
data/slice
Package slice provides utilities for mutating generic slices.
Package slice provides utilities for mutating generic slices.
event
Package event is a library to support event producers and handlers.
Package event is a library to support event producers and handlers.
event/task
Package task contains types that can be used to create cancelable tasks.
Package task contains types that can be used to create cancelable tasks.
fault
Package fault holds common error handling types, code and values.
Package fault holds common error handling types, code and values.
fault/stacktrace
Package stacktrace has functionality for capturing and printing stack traces.
Package stacktrace has functionality for capturing and printing stack traces.
fault/stacktrace/crunch
Package crunch provides functions to compress and decompress stacktraces.
Package crunch provides functions to compress and decompress stacktraces.
git
Package git provides handling for the git source control system.
Package git provides handling for the git source control system.
image
Package image provides functions for converting between various image formats.
Package image provides functions for converting between various image formats.
image/astc
Package astc implements ASTC texture compression and decompression.
Package astc implements ASTC texture compression and decompression.
image/etc
Package etc implements etc texture compression and decompression.
Package etc implements etc texture compression and decompression.
langsvr
Package langsvr provides a simple interface to implement a language server.
Package langsvr provides a simple interface to implement a language server.
langsvr/protocol
Package protocol implements the language server protocol.
Package protocol implements the language server protocol.
log
math/f16
Package f16 is a basic math library for 16 bit floating point numbers.
Package f16 is a basic math library for 16 bit floating point numbers.
math/f32
Package f32 is a basic math library for float32.
Package f32 is a basic math library for float32.
math/f64
Package f64 is a basic math library for float64.
Package f64 is a basic math library for float64.
math/interval
Package interval implements algorithms that operate on lists of intervals.
Package interval implements algorithms that operate on lists of intervals.
math/sint
Package sint is a basic math library for int.
Package sint is a basic math library for int.
math/u32
Package u32 is a basic math library for uint32.
Package u32 is a basic math library for uint32.
math/u64
Package u64 is a basic math library for uint64.
Package u64 is a basic math library for uint64.
net
net/grpcutil
Package grpcutil adds some helpers that make writing grpc servers and clients a little easier.
Package grpcutil adds some helpers that make writing grpc servers and clients a little easier.
os/android
Package android contains support for dealing with android devices.
Package android contains support for dealing with android devices.
os/android/adb
Package adb provides an interface to the Android Debug Bridge.
Package adb provides an interface to the Android Debug Bridge.
os/android/apk
Package apk provides methods to get information (e.g.
Package apk provides methods to get information (e.g.
os/android/binaryxml
Package binaryxml is a package for dealing with the binary format of the android manifest.
Package binaryxml is a package for dealing with the binary format of the android manifest.
os/android/manifest
Package manifest supports reading and changing the android manifest xml file.
Package manifest supports reading and changing the android manifest xml file.
os/device
Package device contains code for describing both the software and hardware of computing devices.
Package device contains code for describing both the software and hardware of computing devices.
os/device/bind
Package bind contains code for binding to and controlling devices.
Package bind contains code for binding to and controlling devices.
os/file
Package file is a package for dealing with strongly typed paths and files in an OS agnostic manner.
Package file is a package for dealing with strongly typed paths and files in an OS agnostic manner.
os/flock
Package flock has helper code for managing inter-processes locks through temporary files.
Package flock has helper code for managing inter-processes locks through temporary files.
os/process
Package process has helper code for managing server processes and connections to them.
Package process has helper code for managing server processes and connections to them.
os/shell
Package shell provides facilities for executing commands on various targets.
Package shell provides facilities for executing commands on various targets.
os/shell/stub
Package stub has implementations of the shell package intended for use in tests where launching an external process is undesirable.
Package stub has implementations of the shell package intended for use in tests where launching an external process is undesirable.
stream
Package stream contains types that fully describe streams of data.
Package stream contains types that fully describe streams of data.
stream/fmts
Package fmts contains a number of standard stream formats.
Package fmts contains a number of standard stream formats.
text
Package text provides common text handling capabilities.
Package text provides common text handling capabilities.
text/cases
Package cases contains functions for Maping strings between various cases (snake, pascal, etc).
Package cases contains functions for Maping strings between various cases (snake, pascal, etc).
text/parse
Package parse provides support functionality for writing scannerless parsers.
Package parse provides support functionality for writing scannerless parsers.
text/reflow
Package reflow supports rewriting the whitespace in a stream of runes.
Package reflow supports rewriting the whitespace in a stream of runes.
video
Package video contains go-wrappers around the 'avconv' and 'ffmpeg' executables for generating videos from images.
Package video contains go-wrappers around the 'avconv' and 'ffmpeg' executables for generating videos from images.
vulkan/loader
Package loader contains utilities for setting up the Vulkan loader.
Package loader contains utilities for setting up the Vulkan loader.
Package gapidapk holds functions relating to the GAPID Android APK.
Package gapidapk holds functions relating to the GAPID Android APK.
pkginfo
Package pkginfo contains support for dealing with package manager information.
Package pkginfo contains support for dealing with package manager information.
gapii
client
Package client provides functions for launching and communicating with the gapii tracer.
Package client provides functions for launching and communicating with the gapii tracer.
Package gapil holds the main interface to the api language libraries.
Package gapil holds the main interface to the api language libraries.
analysis
Package analysis performs static program data flow analysis of an API file.
Package analysis performs static program data flow analysis of an API file.
ast
Package ast holds the set of types used in the abstract syntax tree representation of the api language.
Package ast holds the set of types used in the abstract syntax tree representation of the api language.
bapi
Package bapi exposes functions for serializing and deserializing resolved APIs.
Package bapi exposes functions for serializing and deserializing resolved APIs.
compiler
Package compiler implements the core gapil language compiler.
Package compiler implements the core gapil language compiler.
compiler/mangling
Package mangling exposes a minimal collection of types used to build mangled strings using any of the sub-packages.
Package mangling exposes a minimal collection of types used to build mangled strings using any of the sub-packages.
compiler/mangling/c
Package c implements a basic symbol mangling for that is compatible with C.
Package c implements a basic symbol mangling for that is compatible with C.
compiler/mangling/ia64
Package ia64 implements a subset of the symbol mangling for the itanium ABI (standard for GCC).
Package ia64 implements a subset of the symbol mangling for the itanium ABI (standard for GCC).
compiler/plugins/cloner
Package cloner is a plugin for the gapil compiler to generate deep clone functions for reference types, maps and commands.
Package cloner is a plugin for the gapil compiler to generate deep clone functions for reference types, maps and commands.
compiler/plugins/encoder
Package encoder is a plugin for the gapil compiler to generate command and state encode functions.
Package encoder is a plugin for the gapil compiler to generate command and state encode functions.
compiler/plugins/encoder/test/encoder_pb
Package encoder_pb describes the serialization format for the serialzation test api.
Package encoder_pb describes the serialization format for the serialzation test api.
compiler/testutils
Package testutils implements reusable helpers for writing compiler tests.
Package testutils implements reusable helpers for writing compiler tests.
constset
Package constset provides structures for storing large numbers of value-string pairs efficently.
Package constset provides structures for storing large numbers of value-string pairs efficently.
format
Package format registers and implements the "format" apic command.
Package format registers and implements the "format" apic command.
langsvr
The langsvr command implements a language server for the graphics API language.
The langsvr command implements a language server for the graphics API language.
parser
Package parser implements a parser for converting the api language into abstract syntax trees.
Package parser implements a parser for converting the api language into abstract syntax trees.
resolver
Package resolver implements a semantic resolving for the api language.
Package resolver implements a semantic resolving for the api language.
semantic
Package semantic holds the set of types used in the abstract semantic graph representation of the api language.
Package semantic holds the set of types used in the abstract semantic graph representation of the api language.
semantic/printer
Package printer provides a human-readable printer for the semantic tree nodes.
Package printer provides a human-readable printer for the semantic tree nodes.
serialization
Package serialization contains constants and utility methods used to serialize .gfxtrace files.
Package serialization contains constants and utility methods used to serialize .gfxtrace files.
validate
Package validate registers and implements the "validate" apic command.
Package validate registers and implements the "validate" apic command.
Package gapir provides the gapir API.
Package gapir provides the gapir API.
client
Package client provides helper methods and types for starting GAPIR instances and communicating with them.
Package client provides helper methods and types for starting GAPIR instances and communicating with them.
gapis
api
Package api exposes the shared behavior of all graphics api's.
Package api exposes the shared behavior of all graphics api's.
api/all
Package all is used to import all known api APIs for their side effects.
Package all is used to import all known api APIs for their side effects.
api/commandGenerator
Package commandGenerator includes the interface and the implementation for generating commands to process.
Package commandGenerator includes the interface and the implementation for generating commands to process.
api/controlFlowGenerator
Package controlFlowGenerator contains the interface and implementations to generate a control flow to create a replay.
Package controlFlowGenerator contains the interface and implementations to generate a control flow to create a replay.
api/sync
Package sync provides interfaces for managing externally synchronized APIs.
Package sync provides interfaces for managing externally synchronized APIs.
api/terminator
Package terminator defines the Terminator interface, for special transforms that filter out the tail of a list of commands.
Package terminator defines the Terminator interface, for special transforms that filter out the tail of a list of commands.
api/test
Package test is the integration test suite for the api compiler and templates.
Package test is the integration test suite for the api compiler and templates.
api/test/test_pb
Package test_pb describes the serialization format for the test api.
Package test_pb describes the serialization format for the test api.
api/transform
Package transform contains the elements to be able to transform commands which consist of interfaces for individual transform operations and a transform chain to run all of them.
Package transform contains the elements to be able to transform commands which consist of interfaces for individual transform operations and a transform chain to run all of them.
api/vulkan
Package vulkan implements the API interface for the Vulkan graphics library.
Package vulkan implements the API interface for the Vulkan graphics library.
api/vulkan/vulkan_pb
Package vulkan_pb describes the serialization format for the vulkan api.
Package vulkan_pb describes the serialization format for the vulkan api.
capture
Package capture contains all the core GAPIS functionality for dealing with loaded captures.
Package capture contains all the core GAPIS functionality for dealing with loaded captures.
client
Package client provides helper methods and types for communicating with the GAPIS service.
Package client provides helper methods and types for communicating with the GAPIS service.
config
Package config contains a list of build configuration flags.
Package config contains a list of build configuration flags.
database
Package database implements the persistence layer for the gpu debugger tools.
Package database implements the persistence layer for the gpu debugger tools.
memory
Package memory contains types used for representing and simulating memory observed in the capture.
Package memory contains types used for representing and simulating memory observed in the capture.
memory/memory_pb
Package memory_pb describes the serialization format for the memory package.
Package memory_pb describes the serialization format for the memory package.
messages
Package messages holds the set of translated gapis user visible strings.
Package messages holds the set of translated gapis user visible strings.
perfetto
Package perfetto provides functionality to take and examine Perfetto traces.
Package perfetto provides functionality to take and examine Perfetto traces.
perfetto/android
Package android contains the android specific Perfetto tracing code.
Package android contains the android specific Perfetto tracing code.
perfetto/client
Package client implements a client for the Perfetto consumer API.
Package client implements a client for the Perfetto consumer API.
perfetto/desktop
Package desktop contains the desktop specific Perfetto tracing code.
Package desktop contains the desktop specific Perfetto tracing code.
replay
Package replay is used to issue replay requests to replay devices.
Package replay is used to issue replay requests to replay devices.
replay/asm
Package asm contains high-level instructions to control the replay virtual machine.
Package asm contains high-level instructions to control the replay virtual machine.
replay/builder
Package builder contains the Builder type to build replay payloads.
Package builder contains the Builder type to build replay payloads.
replay/devices
Package devices contains functions for gathering devices that can replay a capture.
Package devices contains functions for gathering devices that can replay a capture.
replay/opcode
Package opcode holds all the opcodes that are to be interpreted by the replay virtual machine.
Package opcode holds all the opcodes that are to be interpreted by the replay virtual machine.
replay/protocol
Package protocol contains the constants and types used to communicate with the replay system and its virtual-machine interpreter.
Package protocol contains the constants and types used to communicate with the replay system and its virtual-machine interpreter.
replay/value
Package value contains the value types used by the replay virtual machine.
Package value contains the value types used by the replay virtual machine.
resolve
Package resolve exposes functions for performing complex data queries.
Package resolve exposes functions for performing complex data queries.
server
Package server implements the rpc gpu debugger service, queriable by the clients, along with some helpers exposed via an http listener.
Package server implements the rpc gpu debugger service, queriable by the clients, along with some helpers exposed via an http listener.
service
Package service is the definition of the RPC GPU debugger service exposed by the server.
Package service is the definition of the RPC GPU debugger service exposed by the server.
service/path
Package path contains types that represent data references.
Package path contains types that represent data references.
shadertools
Package shadertools wraps around external C code for manipulating shaders.
Package shadertools wraps around external C code for manipulating shaders.
stringtable/minidown
Package minidown is a minimal-feature subset of the markdown language.
Package minidown is a minimal-feature subset of the markdown language.
stringtable/minidown/node
Package node holds the syntax tree nodes for a parse minidown document.
Package node holds the syntax tree nodes for a parse minidown document.
stringtable/minidown/parser
Package parser implements the minidown parser.
Package parser implements the minidown parser.
stringtable/minidown/scanner
Package scanner implements the minidown token scanner.
Package scanner implements the minidown token scanner.
stringtable/minidown/token
Package token holds the tokens generated my the minidown scanner.
Package token holds the tokens generated my the minidown scanner.
test
integration/replay
Package replay contains the integration tests with the replay system.
Package replay contains the integration tests with the replay system.
integration/service
Package service provides GAPIS service integration tests.
Package service provides GAPIS service integration tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL