使用Pix For Windows调试Shader傻瓜教程
来源:互联网 发布:mac视频剪辑工具 编辑:程序博客网 时间:2024/06/02 13:40
来源:http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/6c5251d185c124d9572c84ae.html
下面,我们来介绍一下怎么使用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的作用哦~~ 向导窗口下面的四个选项选第一个试试看~~
就此了,有其它好的方法和用法欢迎大家共享,谢谢。
- 使用Pix For Windows调试Shader傻瓜教程
- 使用Pix For Windows调试Shader傻瓜教程
- 使用Pix For Windows调试Shader傻瓜教程
- 使用Pix For Windows调试Shader傻瓜教程
- 使用Pix For Windows调试Shader傻瓜教程
- PIX for Windows使用
- PIX for Windows使用
- A painless introduction to PIX for Windows
- 傻瓜安装 Cacti for Windows
- GitHub For Windows 使用教程
- MPC—Shader—傻瓜教程 Ver.1.0(转)
- MPC—Shader—傻瓜教程 Ver.1.0
- MPC—Shader—傻瓜教程 Ver.1.0(转)
- SLAM的傻瓜教程 SLAM for Dummies
- Windows 8 傻瓜式安装教程
- windows下搭建nexusphp傻瓜式教程
- 用Pix调试HLSL
- 用Pix调试HLSL
- 拦截鼠标以及拦截的解决方案
- 低落
- hdu 4301 Divide Chocolate 动态规划 递推 多校联合赛第二题
- C r e a t e T h r e a d的最后一个参数是p d w T h r e a d I D,可以(并且通常是这样做的)为该参 数传递N U L L。它告诉函数,你对线程的I D不感兴趣
- Ubuntu 12.04 LTS 下 OpenGL环境的搭建
- 使用Pix For Windows调试Shader傻瓜教程
- 决不应该调用E x i t T h r e a d。应该使用Visual C++运行期库函数_ e n d t h r e a d e x
- Te r m i n a t e T h r e a d函数是异步运行的函数,必须调用Wa i t F o r S i n g l e O b j e c t
- 使用返回或调用E x i t T h r e a d的方法撤消线程时,该线程的内存堆栈也被撤消
- PIX for Windows使用
- 没有eclipse|myeclipse配置文件的情况下导入java web工程文件
- 黑马程序员--ADO.NET小结(上)
- Android OpenGL ES 开发教程(26):设置光照效果Set Lighting
- java学习记录