| # Frame Capture with RenderDoc |
| |
| [RenderDoc](https://renderdoc.org/) is a graphics debugger that can be used to capture frames. With Impeller starting to support gles and Vulkan backends, RenderDoc can provide insights into the application's frames. |
| |
| 1. First step is to setup RenderDoc. Follow the instructions [here](https://renderdoc.org/docs/getting_started/quick_start.html). For the purposes of this guide it is assumed that you are able to get RenderDoc running. |
| 2. The next step would be to run the application you wish the capture the frames of. Typically these would be one of the playground tests. To build these, do: |
| |
| ```bash |
| # In your $ENGINE_SRC folder, do: |
| |
| ./flutter/tools/gn --unopt --no-lto --enable-impeller-playground\ |
| --enable-impeller-vulkan --target-dir host_debug_impeller_vulkan |
| autoninja -C out/host_debug_impeller_vulkan/ |
| ``` |
| |
| 3. Start RenderDoc, and click the "Launch Application" button. |
| |
| <img src="assets/launch-app.png" height="200" /> |
| |
| 4. Fill out the following parameters, and click launch: |
| - executable: `$ENGINE_SRC/out/host_debug_impeller_vulkan/impeller_unittests` (expand `ENGINE_SRC`). |
| - args: `--gtest_filter="*CanDrawRect/Vulkan*"` |
| - working dir: `$ENGINE_SRC` (expand `ENGINE_SRC`) |
| |
| 5. For the frame you wish to capture, press `F12`, you will now be able to see the frame capture and inspect the state. |
| |
| <img src="assets/render-doc-capture.png" /> |