A few days back Google released GAPID, Graphics API Debugger, which is open source and available on Github. GAPID is described as:
GAPID is a collection of tools that allows you to inspect, tweak and replay calls from an application to a graphics driver.
GAPID is composed of several different components, including:
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.