如何在D3D9中调试shader

 转载请注明:来自http://blog.csdn.net/skyman_2001

步骤如下:
(1)从DirectX SDK中安装shader调试器;
(2)在“DirectX Properties(DirectX 属性)”对话框中选择“Use Debug Version of Direct3D”和“Enable
Shader Debugger”单选框。(可通过“开始—>控制面板—>DirectX”打开该对话框,这两个单选框位于“Direct3D”标签页中);
(3)在程序中设置DeviceType为D3DDEVTYPE_REF(因为VS和PS只能在特定的设备上才能被调试,见表1)。并且在D3DXCreateEffectFromFile()函数中将参数Flags设为D3DXSHADER_DEBUG|D3DXSHADER_SKIPOPTIMIZATION。(D3DXSHADER_SKIPOPTIMIZATION——通知编译器不要执行任何代码优化。实践中,这个选项应该仅用于调试,因为这种情况下你不希望编译器以任何方式修改代码);
(4)在顶点shader或像素shader中设置一个断点;
(5)在Visual Studio .NET中选择“Debug—>Direct3D—>Start D3D”(Ctrl+Alt+F5)来运行应用程序;
(6)通过“Debug—>Window—>Disassembly”还可以看到汇编代码,而通过“Debug—>Direct3D—>RenderTargets”则可以看到渲染目标,通过“Debug—>Direct3D—>Textures”可以查看纹理贴图。
                                                         表1

关于调试shader的详情请参见MSDN的教程:
Getting Started Debugging Shaders (Direct3D 9)

HAL DeviceHAL DeviceREF DeviceREF Device
ShaderSWVPHWVP or pure HWVPSWVPHWVP or pure HWVP
Vertex ShaderYes, with the debug runtimeNoYes, with the debug runtimeNo
Pixel ShaderNoNoYesYes
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值