如何在D3D9中调试shader

news/2025/2/2 8:43:47/

 转载请注明:来自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

http://www.ppmy.cn/news/579473.html

相关文章

Direct3D9 教程01

准备条件&#xff1a;VS2005、Microsoft DirectX SDK (April 2007)测试环境&#xff1a;Xp SP2、M440、GF7300go、1G DDR2 6671、在VS2005中创建空项目&#xff0c;新建文件CreateDeviceMy.cpp代码如下&#xff1a; // 包含Dx9的头文件 #include < d3d9.h > #pragma war…

解决Windows d3dx9_30.dll找不到问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题&#xff0c;如果是新手第一时间会认为是软件或游戏出错了&#xff0c;其实并不是这样&#xff0c;其主要原因就是你电脑系统的该dll文件丢失了或者损坏了&#xff0c;这时你只需下载这个d3dx9_30.dll文件进行安装(前…

D3D9 简单图形的绘制以及显示

程序截图所示&#xff1a; 要想完成这样的程序&#xff0c;首先咱们先得知道以下几点才能进行绘制并且显示&#xff1a; 一、了解什么是D3D9的绘制流水线&#xff1a; 1.局部坐标系&#xff1a; 主要用于在使用3D建模时&#xff0c;所使用的坐标系&#xff0c;无需考虑它相对于…

安装Jmeter

Jmeter是Java语言开发,所以需要java环境,所以先安装jdk 1.安装JDK(1.8版本以上) 下载&#xff1a; https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 找到对应的版本: 点击exe文件安装,跟着向导下一步 2.安装jmeter 下载 Jmeter &#xff1a; 版…

Windows中d3dx9_24.dll丢失解决

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题&#xff0c;如果是新手第一时间会认为是软件或游戏出错了&#xff0c;其实并不是这样&#xff0c;其主要原因就是你电脑系统的该dll文件丢失了或者损坏了&#xff0c;这时你只需下载这个d3dx9_24.dll文件进行安装(前…

d3d(Direct X)中的com技术详解

本文不会对Com进行非常详细的分析 因为这个技术分析起来难度还是非常大的 要想真正弄懂还是非常困难的 我只会针对d3d中使用到的com技术和comptr技术进行说明 所以看完本文后 可以熟练使用d3d中使用到的相应技术 comptr类似于c11中的智能指针,用于管理com对象的生命周期,所以我…

简单的D3D使用

初始化D3D的方法如下: 代码如下: #pragma comment (lib,"d3d11.lib") #pragma comment (lib,"d3dx11.lib") #pragma comment (lib,"winmm.lib") #include <windows.h> #include <d3d11.h> #include <DxErr.h> #include <…

Windows缺少d3dx9_34.dll文件解决

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题&#xff0c;如果是新手第一时间会认为是软件或游戏出错了&#xff0c;其实并不是这样&#xff0c;其主要原因就是你电脑系统的该dll文件丢失了或者损坏了&#xff0c;这时你只需下载这个d3dx9_34.dll文件进行安装(前…