在 Windows 上用 fxc 编译 shader,默认会把调试信息嵌进 shader 二进制里,包体会因此变大。可以用 fxc /Qstrip_debug 剥掉调试信息,但这样一来 RenderDoc 里就没法调试了。这篇讲怎么两全:把调试信息单独导出成 pdb,剥离后的二进制照常发布,同时让 RenderDoc 仍能加载到调试信息。
原理
- 在 RenderDoc 里设置 shader 调试信息的搜索路径;
- 给剥离后的 shader 二进制写一段特殊的 private data,告诉 RenderDoc 对应的 pdb 在哪。