快速入门

本章介绍 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 面板

选择菜单 FileLaunch Application,默认会打开一个停靠窗口用于配置抓帧参数。

步骤二:配置并启动目标程序

在 Executable 输入框中填入或拖入目标可执行文件路径,按需填写 Working Directory 和命令行参数,然后点击 Launch 启动目标程序。

RenderDoc 会将自身作为 debug layer 注入目标进程,此时程序正常运行,屏幕左上角会出现 RenderDoc 的 overlay 提示字样,表明注入成功。

步骤三:触发抓帧

在目标程序运行中,按下抓帧快捷键(默认为 F12Print Screen),RenderDoc 会在按键之后的下一帧完成捕获。overlay 上会有提示文字显示帧已保存。

步骤四:查看捕获结果

  • 若程序正常退出后有抓取的帧,RenderDoc UI 会自动加载该帧。
  • 若程序运行期间进行了多次抓帧,会出现缩略图列表,可选择在当前实例或新实例中打开(新实例便于横向对比)。
  • 未抓帧直接退出则 UI 保持原状。

打开 .rdc 文件与基本导航

打开文件

通过菜单 FileOpen Capture 或直接将 .rdc 文件拖入 RenderDoc 窗口即可加载。

基本导航操作

Event Browser(帧事件浏览器)

  • EID 列表按时序显示帧内所有 action(draw、dispatch、clear、copy 等)。
  • 点击任意行即将当前检查点切换到该事件,所有关联面板同步更新。
  • 使用 Ctrl-F 搜索特定事件或输入数字直接跳转到指定 EID。
  • 使用 Ctrl-B 为当前事件添加书签,之后通过 Ctrl-1Ctrl-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 ItemsShow Empty Items 开关控制显示。
  • 点击 Go Icon 可展开进入更详细视图(shader 源码/反汇编、texture 独立标签、buffer 内容等)。
  • API 对象名称以加粗加链接图标的形式出现,点击进入 Resource Inspector 查看对象的完整定义和依赖关系。

Launch Application 面板各参数说明

通过 FileLaunch 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 等各窗口的专项说明。