# Python API

RenderDoc exposes APIs to python at two different levels:

1. The base replay API, the `renderdoc` module, which provides low level access to handling capture files, replaying frames and obtaining analysis information. The UI is built entirely on top of this API, so it provides the full power of RenderDoc, however is does not have many convenience abstractions.
2. The RenderDoc UI API, the `qrenderdoc` module, which exposes the abstractions and panels within the UI tool.

Within RenderDoc - when either running scripts on the command line, or via the Python Shell - both modules are pre-imported and available automatically.

It is also possible to build the `renderdoc` module standalone which can be loaded into python and used for scripting directly without the UI program. Due to the inherent difficulty of distributing C python modules this isn’t included by default in distributed builds at the time of writing, but is generated by default in source builds - `renderdoc.pyd` on windows or `renderdoc.so` elsewhere.

Note

RenderDoc only supports Python 3.4+, Python 2 is not supported.

This documentation contains information on getting started with the scripting, as well as tutorials and examples outline how to perform simple tasks.

Each example has a simple motivating goal and shows how to achieve it using the interfaces provided. They will not show every possible use of the interfaces, but instead give a starting point to build on. Further information about exactly what functionality is available can be found in the API reference below as well as using the python built-in `help()` function.

- Getting Started (python)
  - Loading the Module
  - Loading a Capture
  - Accessing Capture Analysis
  - Example Source
- Getting Started (RenderDoc UI)
  - Loading a Capture
  - Accessing Capture Analysis
- Basic Interfaces
  - Replay Basics
    - ReplayController
    - ReplayOutput
  - RenderDoc UI Basics
- renderdoc Examples
  - Iterate drawcall tree
    - Example Source
  - Fetch Shader details
    - Example Source
  - Fetch GPU Counter Data
    - Example Source
  - Save a texture to disk
    - Example Source
  - Decoding Mesh Data
    - Example Source
  - Display texture in window
    - Example Source
- qrenderdoc examples
  - Display buffer with format
    - Example Source
- renderdoc API Reference
- qrenderdoc API Reference