这个例子用来学习采用PIX调试与检测程序问题,放在dxsample难度比较简单的位置感觉不大恰当
例子中各种选项可以制造各种可能的问题,来说明碰到这种问题如何进行调试
英文文档的Sample Features里面描述了各种可能导致功能问题和性能问题的情况
各种具体调试情况如下:
诊断黑屏
制造黑屏:
Fog:None
Caustic Texture:Black
Black Clear:true
采用例子中说明的pix使用方法“查出”第二个texture sampler为黑色纹理
采用的方法包括:调试像素查看shader、查看draw call的device状态里面的sampler states
pix调试hlsl需要修改编译参数,切换到ref方式运行,改完以后太慢了!
程序退出D3D引用计数调试
制造环境:
勾选Ref count exit error
采用文档中所述步骤可以捕捉到未释放vertex创建点,但是需要在代码里面有D3DPERF_BeginEvent、D3DPERF_EndEvent对
纹理闪烁
制造环境:
打开Z-Fighting
通过文档中步骤可知,棋盘mesh包含2个submesh,导致z-fighting
捕捉不确定的Bug
这一部分讲的是:如果某些bug不是每一帧都出现,比如z-fighting,可以保存一段replay到文件,然后分析这段replay运行情况,找到出问题的帧,然后profile这段replay完毕,再类似纹理闪烁里面一样查找问题