快速入门
本章介绍 RenderDoc 的基本使用流程,涵盖从环境准备、首次启动到抓帧分析的完整工作步骤。示例以 Sascha Willems 的 Vulkan 示例仓库中的 debugmarker 样本为参考。
安装与环境准备(Linux/Windows)
RenderDoc 提供 Windows 和 Linux 两个平台的预编译包,也可从源码构建。
版本匹配原则
- 必须根据目标进程的位数选择对应的 RenderDoc 版本。
- 64-bit 进程只能用 64-bit 版本的 RenderDoc 抓帧;32-bit 进程可使用任意位数版本。
- Windows 平台选择 x64 安装包时对应 64-bit 进程,x86 对应 32-bit 进程。
Linux 注意事项
- 确保系统已安装必要的图形驱动(Vulkan / OpenGL)。
- 通过发行版包管理器或官方 AppImage/二进制包安装。
Windows 注意事项
- 安装时会注册 RenderDoc 的系统驱动层,建议以管理员权限运行安装程序。
- 安装完成后可通过开始菜单或直接运行
qrenderdoc.exe启动。
首次启动与界面布局总览
启动 RenderDoc 后默认呈现以下主要区域,各窗口均支持拖拽停靠(docking)与自由布局。
主窗口各区域说明
| 区域 | 说明 |
|---|---|
| Texture Viewer | 检查帧内的 texture 和 render target,支持通道选择、mip 层级、范围调节等操作 |
| Event Browser | 帧事件列表,按 EID(Event ID)时序展示所有 draw call 和资源操作事件 |
| API Inspector | 显示当前所选事件的 API 调用列表及参数,可展开查看调用栈 |
| Timeline Bar | 以时间轴方式呈现帧结构,横轴按 API call 数量均匀分布,辅助追踪 texture 使用 |
| Pipeline State | 列出图形管线的完整状态,包含每个阶段绑定的资源、shader、状态对象等 |
| Mesh Viewer | 可视化管线各阶段的几何数据,支持表格与 3D 线框两种查看方式 |
各窗口均可通过 Window 菜单重新打开或通过标签页拖拽重新布局。
基本抓帧步骤(本地可执行文件)
步骤一:打开 Launch Application 面板
选择菜单 File → Launch Application,默认会打开一个停靠窗口用于配置抓帧参数。
步骤二:配置并启动目标程序
在 Executable 输入框中填入或拖入目标可执行文件路径,按需填写 Working Directory 和命令行参数,然后点击 Launch 启动目标程序。
RenderDoc 会将自身作为 debug layer 注入目标进程,此时程序正常运行,屏幕左上角会出现 RenderDoc 的 overlay 提示字样,表明注入成功。
步骤三:触发抓帧
在目标程序运行中,按下抓帧快捷键(默认为 F12 或 Print Screen),RenderDoc 会在按键之后的下一帧完成捕获。overlay 上会有提示文字显示帧已保存。
步骤四:查看捕获结果
- 若程序正常退出后有抓取的帧,RenderDoc UI 会自动加载该帧。
- 若程序运行期间进行了多次抓帧,会出现缩略图列表,可选择在当前实例或新实例中打开(新实例便于横向对比)。
- 未抓帧直接退出则 UI 保持原状。
打开 .rdc 文件与基本导航
打开文件
通过菜单 File → Open Capture 或直接将 .rdc 文件拖入 RenderDoc 窗口即可加载。
基本导航操作
Event Browser(帧事件浏览器)
- EID 列表按时序显示帧内所有 action(draw、dispatch、clear、copy 等)。
- 点击任意行即将当前检查点切换到该事件,所有关联面板同步更新。
- 使用
Ctrl-F搜索特定事件或输入数字直接跳转到指定 EID。 - 使用
Ctrl-B为当前事件添加书签,之后通过Ctrl-1至Ctrl-0快速跳转到已书签事件。 - 键盘方向键:左右键在层级中升降,上下键在同级事件间移动。
- Performance marker(调试标记)形成折叠层级,可展开或折叠查看。
Texture Viewer(纹理查看器)
- 右侧缩略图列表显示当前事件的 render target 输出或 shader 输入绑定。
- 选中缩略图后,主显示区随事件切换自动跟踪该绑定槽位的 texture。
- 双击缩略图或右键选择”open in new locked tab”可锁定查看特定 texture。
- 状态栏显示 texture 的格式、尺寸、当前鼠标位置坐标及拾取的像素值。
- 范围控制条(range control)用于调整显示范围,适合查看 HDR 图像(范围超出 [0, 1] 时特别有用)。
Pipeline State(管线状态查看器)
- 列出管线每个阶段的全量状态。
- 默认隐藏未使用和空槽位,可通过工具栏的
Show Unused Items和Show Empty Items开关控制显示。 - 点击 Go Icon 可展开进入更详细视图(shader 源码/反汇编、texture 独立标签、buffer 内容等)。
- API 对象名称以加粗加链接图标的形式出现,点击进入 Resource Inspector 查看对象的完整定义和依赖关系。
Launch Application 面板各参数说明
通过 File → Launch Application 打开该面板,主要参数如下:
Executable Path
目标可执行文件的绝对路径。支持手动输入、浏览按钮选择和拖拽文件三种方式。RenderDoc 会以此路径启动目标进程并注入抓帧层。
Working Directory
目标程序运行时的工作目录。若留空,默认使用可执行文件所在目录。对于依赖相对路径查找资源的程序,需要正确设置此项。
Command Line Arguments
传递给目标程序的命令行参数字符串,与直接在终端启动程序时指定的参数含义相同。
Environment Variables
可在此追加或覆盖目标进程的环境变量,适用于需要通过环境变量控制行为(如 Vulkan 验证层、日志输出)的程序。
Capture Options
控制抓帧时的各项捕获行为,常用选项包括:
| 选项 | 说明 |
|---|---|
| Allow Fullscreen | 是否允许目标程序以全屏模式运行 |
| Allow VSync | 是否允许垂直同步,关闭可提高抓帧时的帧率 |
| Capture Callstacks | 是否在每次 API 调用时记录调用栈,用于在 API Inspector 中查看,需额外性能开销 |
| Capture All Command Lists | 对 D3D11 等 API 捕获所有 command list,即使是延迟录制的 |
| Save All Initials | 保存初始资源状态,增大 .rdc 文件体积,但保证 replay 完整性 |
| API Validation | 启用图形 API 的验证层(如 Vulkan Validation Layers),输出验证错误到日志 |
| Hook Into Children | 是否同时 hook 目标进程启动的子进程 |
| Ref All Resources | 记录所有被引用资源的完整状态 |
Inject Into Process
除 Launch 方式外,也可将 RenderDoc 注入到已运行的进程中。通过 Attach to Running Instance 选项,在弹出的进程列表中选择目标进程后点击 Attach,适用于不方便通过 RenderDoc 启动的场景(如需要特定启动脚本的程序)。
更多功能细节可参考后续章节:Texture Viewer、Event Browser、Pipeline State、Mesh Viewer 等各窗口的专项说明。