下面,我们来介绍一下怎么使用DX SDK自带的工具PIX For Windows来调试Shader。这里只做简要的介绍,具体的情参看PIX的文档哈。如何找到文档呢?打开DX SDK开始菜单下面的DirectX Documentation for C++,我的版本是09年8月版本的,到目前为止好像是最新版,呵呵。然后依次:DirectX Software Development Kit/Tools/DirectX Performance Tools/PIX。
好了开始吧。首先,让我们选择一个例子吧,就用微软自带的BasicHLSL这个Demo吧。首先呢,我们要用可调式Shader的方式编译和链接我们的程序。对于这个Demo来说,就是简单的把下面这两句解注释就OK了:
#define DEBUG_VS // Uncomment this line to debug vertex shaders
#define DEBUG_PS // Uncomment this line to debug pixel shaders
好了,现在我们应该会生成一个可执行文件了。我的这个可执行文件的地址是:E:/Documents/Visual Studio 2008/Projects/DirectXSamples/BasicHLSL/Debug/BasicHLSL.exe 记住它哦。
然后我们去开始菜单DXSDK下面打开PIX for Windows.如果不出意外的话,你应该能看到这个界面:
好了,让我们新建一个Experiment吧。方法是File>New Experiment(PS:Ctrl+N或者直接点工具栏都可以)。然后你会看到下面一个界面:
如上所示,这样选择好,点Start Experiment就可以启动应用程序了。
注意,由于开启了Pixel Shader调试,因此会切换到参考设备,所以会出现一个警告,且运行期间会很卡,但是,忍住吧,呵呵。造成这个的罪魁祸首在此:
// Debugging vertex shaders requires either REF or software vertex processing
// and debugging pixel shaders requires REF.
#ifdef DEBUG_VS
if( pDeviceSettings->d3d9.DeviceType != D3DDEVTYPE_REF )
{
pDeviceSettings->d3d9.BehaviorFlags &= ~D3DCREATE_HARDWARE_VERTEXPROCESSING;
pDeviceSettings->d3d9.BehaviorFlags &= ~D3DCREATE_PUREDEVICE;
pDeviceSettings->d3d9.BehaviorFlags |= D3DCREATE_SOFTWARE_VERTEXPROCESSING;
}
#endif
#ifdef DEBUG_PS
pDeviceSettings->d3d9.DeviceType = D3DDEVTYPE_REF;
#endif
当程序运行之后,让我们在想调试的Frame按下F12键。(也可以是其它键,这取决于你的设置,你可以去上面那个界面的More Option里修改。) 然后咱们就退出吧,同时也退出新建Experiment的向导对话框吧,然后出现了一个这个界面:
OK,这就是我们要分析的第六帧哦。在Detail窗口中选择Render,事件中选择Frame6.然后应该能看到这个界面:
接下来选择一个我们要调试的像素,右键之后选Debug This Pixel。
看到左边的链接了吗?(如上图所示的Debug Vertex0等)点击它们试试吧。
是不是很简单呢?这是一个轻量级的工具不怎么占资源也挺好用的。
呵呵。Pixel也是同样的道理哦:
我也是刚刚接触到PIX,到处找资料都找不到,所以只好自己自学了,希望这一点点东西对大家能有帮助。另外PIX是很强大的一个工具,它能做的不仅仅是这点,它还可以用来查Bug用来检查性能消耗,起Nvidia PerfHUD的作用哦~~ 向导窗口下面的四个选项选第一个试试看~~
就此了,有其它好的方法和用法欢迎大家共享,谢谢。
个人注解:
此处的VS和PS在编译时必须指定D3DXSHADER_DEBUG(/Zi)和D3DXSHADER_SKIPOPTIMIZATION(/Od),否则就只能在反汇编模式下调试了,哈哈!
分享到:
相关推荐
pix4d使用视频教程,使用指导。适合初学者使用。介绍比较好
CISCO PIX 初级配置教程 CISCO PIX 初级配置教程 CISCO PIX 初级配置教程 CISCO PIX 初级配置教程
Pix4D公司开发的一款集全自动、快速、专业精度为一体可以实现自动航测功能的三维建模软件,从而帮助用户实现云计算功能,快速的生成最精准的报告,拥有自动正射影响的功能,从而能够自动进行三维建模,帮助你在各行...
Versions are available for Linux, OS X, and Windows and can come in CPU-based or GPU-based variants. Examples of hashcat-supported hashing algorithms are Microsoft LM hashes, MD4, MD5, SHA-family, ...
Pix4Dmapper软件使用作业流程及问题处理!为啥还要写50个字节 好麻烦!
PIX模拟器中文教程,个人觉得比较详细,可以看一下
此代码能很好的使用pix2pix网络对图片进行分类。
PIX使用手册,叫你如何使用PIXPIX使用手册,叫你如何使用PIXPIX使用手册,叫你如何使用PIX
PIX密码恢复教程,详细步骤,官网翻译而来!
在 Linux、macOS、Windows 系统下使用 Mathpix 可以截取到复杂数学方程式的截图,并可以转换成 LaTeX 可编辑文本,在写学术及科学文献时经常会用到。编写 LaTeX 文档最麻烦的部分是那些复杂的方程式,使用 Mathpix ...
pix2pix-master_pix2pix网络结构_pix2pix_源码
Pix4Dmapper使用说明,Pix4Dmapper 中文简易操作手册 (v.2.1,2.2)
pixos全屏风格for leadbbs 3.14
PIx 必看的入门教程
在 Linux、macOS、Windows 系统下使用 Mathpix 可以截取到复杂数学方程式的截图,并可以转换成 LaTeX 可编辑文本,在写学术及科学文献时经常会用到。编写 LaTeX 文档最麻烦的部分是那些复杂的方程式,使用 Mathpix ...
# pix2pix训练图像翻译Pytorch源码 使用facades数据集 1. pix2pix Pytorch实现源码 2. 使用facades数据集实现照片到标记图翻译 3. 代码精简,上手简单,可使用自己的数据集训练
GAN去噪算法,pix2pix简单容易上手,真的很棒棒
pix4d详细流程,中文操作手册!软件安装,点云处理,正射处理。
PIX 配置 文档 8.0,超好的教程超级全面,学习np必备资源,思科资源ccnp
压缩包是本人项目中整理的思科pix系列镜像文件合集! pix635.bin pix721.bin pix803.bin pix804.bin 好资源分享给需要的朋友们。