使用Pix For Windows调试Shader傻瓜教程

转载 2011年01月14日 16:24:00

下面,我们来介绍一下怎么使用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),否则就只能在反汇编模式下调试了,哈哈!

PIX for Windows使用

工具路径:[安装目录]\Microsoft DirectX SDK (August 2009)\Utilities\bin\x86\PIXWin.exe 或在开始菜单中\Microsoft Dire...
  • pizi0475
  • pizi0475
  • 2012年07月19日 21:02
  • 3543

使用Pix For Windows调试Shader傻瓜教程

来源:http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/6c5251d185c124d9572c84ae.html 下面,我们来介绍一下...
  • aoying59595512
  • aoying59595512
  • 2013年05月28日 23:53
  • 366

使用Pix For Windows调试Shader傻瓜教程

下面,我们来介绍一下怎么使用DX SDK自带的工具PIX For Windows来调试Shader。这里只做简要的介绍,具体的情参看PIX的文档哈。如何找到文档呢?打开DX SDK开始菜单下面的Dir...
  • seamanj
  • seamanj
  • 2014年04月28日 18:33
  • 754

使用Pix For Windows调试Shader傻瓜教程

下面,我们来介绍一下怎么使用DX SDK自带的工具PIX For Windows来调试Shader。这里只做简要的介绍,具体的情参看PIX的文档哈。如何找到文档呢?打开DX SDK开始菜单下面的Dir...
  • poem_of_sunshine
  • poem_of_sunshine
  • 2013年02月28日 00:26
  • 1793

APM和PIX飞控日志分析入门贴

我们在飞行中,经常会碰到各种各样的问题,经常有模友很纳闷,为什么我的飞机会这样那样的问题,为什么我的飞机会炸机,各种问题得不到答案是一件非常不爽的问题,在APM和PIX飞控中,都有记录我们整个飞行过程...
  • xazzh
  • xazzh
  • 2017年05月30日 23:37
  • 2631

根据pix飞控log文件和photo文件夹建立pos文件,提取pos数据小程序

根据pix飞控log文件和photo文件夹建立pos文件,提取pos数据小程序 近来在做无人机航摄相关工作,无人机飞完后,需要将飞控数据导出,然后提取里面的cam记录,再结合照片文件夹,制作pos文件...
  • hailiannanhai
  • hailiannanhai
  • 2017年03月01日 21:15
  • 2344

Pixhawk飞控开发环境配置

ArduPilot自驾仪手册网址:http://ardupilot.com/ Pixhawk开发者网址(自驾仪源代码开发):http://dev.ardupilot.com/ 第一部分,环境配...
  • bolvtin
  • bolvtin
  • 2015年08月14日 19:58
  • 12040

每天读一点儿APM(PIX)代码之三:飞行控制

本期话题以ArduPlane代码为例分析了Ardupilot飞控体系对飞行器的反馈控制过程,并在实例中添加了一个直接易用的固定翼起飞辅助模式,供大家参考。...
  • flyingxty
  • flyingxty
  • 2016年01月23日 09:08
  • 6698

Pixhawk原生固件PX4之调节怠速

调整怠速没有那么棒的嘛……
  • oqqENvY12
  • oqqENvY12
  • 2017年03月19日 22:33
  • 2717

Cisco PIX防火墙基本配置命令详解

Cisco PIX防火墙基本配置命令详解 一、PIX防火墙的认识 PIX是Cisco的硬件防火墙,硬件防火墙有工作速度快,使用方便等特点。 PIX有很多型号,并发连接数是PIX防火墙...
  • nosodeep
  • nosodeep
  • 2013年01月20日 15:16
  • 6873
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Pix For Windows调试Shader傻瓜教程
举报原因:
原因补充:

(最多只允许输入30个字)