我做到了。
上面是真实的使用场景 —— 我在 Claude Code 里打开了一个 D3D11 的 CubeWorld 抓帧,AI 自动分析了整帧的渲染结构、Pipeline 状态、Draw Call 序列,最后给出了完整的技术报告。
整个过程我只打了一句话。
renderdoc-mcp ------ 一个把 RenderDoc(图形程序员人手一个的 GPU 调试器)的全部能力通过 MCP 协议暴露给 AI 的工具。
59 个 MCP Tools。C++ 从零手写。覆盖了你能想到的所有 GPU 调试场景:
- 打开 .rdc 抓帧,浏览每一个 Draw Call
- 检查完整的 Pipeline 状态(Shader、RT、混合、光栅化...)
- 反汇编任意 Shader 阶段的 HLSL/GLSL/SPIR-V
- 像素级调试:Pixel History、像素拾取、Shader 单步
- 实时注入应用程序抓帧,边跑边调
- 两帧 Diff 对比(Draw Call / Pipeline / 像素 / Pass 结构 / 资源 / 统计,6 维度)
- CI 断言框架:assert_pixel、assert_state、assert_image...
- 渲染结果一键导出 PNG
一句话总结:RenderDoc 能做的,AI 现在也能做了。
图形编程的调试体验,说实话,一直很痛苦。
一帧画面背后可能有上千个 Draw Call、几十个 Render Pass、复杂的资源绑定关系。RenderDoc 的 GUI 给你展示了一切,但问题是 ------ 信息量太大了。你得自己筛选、自己定位、自己关联。一个渲染 Bug 查下来,半天就没了。
而 AI 擅长的恰恰是处理大量结构化信息、快速筛选和关联。
MCP 协议给了我一个标准化的桥接方案,让我可以把 RenderDoc 的专业能力"翻译"成 AI 能理解和操作的接口。所以我把整个 Replay API 包了一层,写成了 59 个 Tool,让 Claude、Codex 这些 AI 助手可以像图形工程师一样操作 RenderDoc。
很多 MCP 项目只是把 API 简单包一下就完事了。renderdoc-mcp 不是。
我在架构上花了很多心思:
分层设计 ------ 协议层(mcp-proto)和业务层(renderdoc-core)完全解耦。协议层不知道 RenderDoc 的存在,业务层不知道 MCP 的存在。两者通过桥接层连接。这意味着如果明天出了新的 AI 协议,我只需要换一个协议层。
双入口 ------ 除了 MCP Server,还有一个 CLI(renderdoc-cli),直接链接 Core 层,不经过任何协议开销。Shell 脚本、CI 管道可以直接调用。
Diff 引擎 ------ 这是我最得意的部分。同时加载两个 .rdc 文件,用 LCS 算法对齐 Draw Call 序列,从 6 个维度深度对比。版本回归检测、渲染正确性验证,一键搞定。
CI 断言框架 ------ 5 个 assert 工具,让 GPU 渲染也能像普通代码一样跑自动化测试。push 一个 commit,CI 自动抓帧验证渲染结果。
场景 1:排查渲染异常
"帮我打开这个 rdc,画面右上角有块黑**域。"
AI 自动:打开 → 遍历 Draw Call → 定位可疑 Pass → 检查 Pipeline → 发现 Scissor Rect 配错 → 导出对比图 → 给修复建议。
场景 2:版本对比
"这两个版本的抓帧,帮我对比下变化。"
AI 自动:同时加载两帧 → 概览差异 → 发现新增 3 个 Draw → 检查新 Draw 状态 → 像素级确认差异 → 总结回归点。
场景 3:CI 自动验证
每次构建后自动抓帧 → 验证关键像素 → 检查 Draw Call 数量 → 检测资源浪费 → 输出报告。
- C++17,CMake 构建
- JSON-RPC 2.0 over stdio,遵循 MCP 2025-03-26 规范
- nlohmann/json 做序列化,stb_image 做图像编码
- 声明式工具注册,自动参数校验和错误码映射
- Session 隔离架构:主分析 Session 和 Diff Session 独立共存
- 支持 D3D11、D3D12、OpenGL、Vulkan 全部图形 API
- MIT 开源协议
这个项目花了我不少精力,从架构设计到 59 个 Tool 的实现,再到 Diff 引擎和 CI 断言框架,每一块都是从零写的。
如果你是图形程序员,建议试一下 —— 体验过 AI 帮你调 GPU 之后,就回不去了。
如果你对 MCP 生态感兴趣,这个项目也是一个不错的参考 —— 怎么用 C++ 从零构建一个生产级的 MCP Server。
Star 一下,就是最好的支持。
GitHub: https://github.com/JiaboLi-GitHub/renderdoc-mcp
开源不易,感谢每一个 Star。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/257234.html