欢迎光临散文网 会员登陆 & 注册

03a. The-Forge 入门教程 - DX12 shader debug

2020-11-15 15:35 作者:AICDG  | 我要投稿

工欲善其事必先利其器,调试永远是开发的重要环节。绝大部分情况下,debug代码耗时要远长于代码本身编写的耗时。

如果说到渲染调试,相信大部分同学的第一反应是renderdoc。要承认,renderdoc是我最常用,最顺手,综合体验最好的frame debugger。但是renderdoc对dx12的支持,截止到本文编写的2020/11/15,还不是很完善。dx12下的pixel history,dxil debugger/disasmble ,shader model 6+支持都不好。

事实上,dx11和sm5,已经是快十年的老标准了。。。

调试dx12,renderdoc不能是第一选择。

pix

既然renderdoc不是调试dx12的最优选,那最优选自然另有其人,就是微软官方出品的pix。

pix以前一直是xbox系列主机的frame debugger/profiler,伴随xbox初代诞生更新至今。在win10和dx12推出之后又下放给了windows平台。

pix的使用逻辑和renderdoc也差不多,也是支持直接启动或者attach的方式进行注入

注入后左上角有注入成功的代码提示。pix注入带来的性能损失感觉比renderdoc要小一些。PrintScreen截取下一帧

截取成功后和renderdoc一样,双击截取的frame进行分析

pix有一点和renderdoc不同,需要主动点击start键开始分析帧,不然只能overview。个人猜测与pix允许低代价连续截帧有关。

之后寻找compute shader的dispatch或者drawcall的draw即可

shader debug

compute shader

选中UAV中要调试的点,点击debug,

或者在调试界面输入Dispatch ID,可以开启cs调试

vertex shader

vs上右键 debug vertex ID

或者在debug 界面输入要调试的instance id和vertex id,即可开始调试vs

pixel shader


在Output manager中找到要调试的像素点击debug

或者在debug界面输入要调试的坐标,点击运行按钮,即可开始debug


03a. The-Forge 入门教程 - DX12 shader debug的评论 (共 条)

分享到微博请遵守国家法律