Directx 调试Windows 8应用程序的HLSL

Directx 调试Windows 8应用程序的HLSL,directx,hlsl,debugging,sharpdx,Directx,Hlsl,Debugging,Sharpdx,我目前正在使用SharpDX(托管c#directx包装器)创建一个Windows8应用程序。但是,我的一个着色器遇到了问题,我想知道是否可以调试这样的应用程序。PIX似乎不适用于directX应用程序,因为可执行文件不喜欢直接打开,而VS2012中新的visual studio图形调试工具包在我尝试捕获有关会话的任何信息时总是声明“无法启动实验” 谢谢 DirectX Visual Studio调试器仅适用于本机代码。在右键单击项目,选择“属性”,转到“调试”选项卡,并启用本机调试之前,您将一

我目前正在使用SharpDX(托管c#directx包装器)创建一个Windows8应用程序。但是,我的一个着色器遇到了问题,我想知道是否可以调试这样的应用程序。PIX似乎不适用于directX应用程序,因为可执行文件不喜欢直接打开,而VS2012中新的visual studio图形调试工具包在我尝试捕获有关会话的任何信息时总是声明“无法启动实验”


谢谢

DirectX Visual Studio调试器仅适用于本机代码。在右键单击项目,选择“属性”,转到“调试”选项卡,并启用本机调试之前,您将一直处于错误状态


虽然这将消除错误,但可能解决问题,也可能无法解决问题。我有类似的场景,使用SurvivIsIsGeSurCE(C++)托管在C++组件中的托管组件和DistTXPAGE中。在这两个项目中,DirectX调试似乎都未能捕获帧。似乎此功能仅适用于使用DirectX UI(无托管UI组件)的程序

我来这篇文章有点晚了,但我只想为将来的访问者添加一个线程,我已经在SlimDX和SharpDX项目中成功地使用了Visual Studio 2012图形诊断(“DirectX调试器”)。有一些事情可能会破坏这个过程,特别是在SlimDX项目中,我无法使用混合的DX10/11调试应用程序,DX10似乎不能与VS2012一起工作,至少对于托管代码是这样。因此,如果您有任何文本呈现,例如,您将不得不删除它的调试会话。我认为使用以下方法隔离DX10代码应该是可行的

#define DXDIAGSESSION
  // ... 
#if DXDIAGSESSION
  // your DX10 code goes here.
#endif

对于SharpDX项目(C#/WinRT/XAML/SharpDX),我不能使用仅托管的调试器。我必须将调试器设置为混合(托管和本机)才能正常工作。

您能澄清一下“Windows 8应用程序”是什么意思吗?这是一个Windows 8风格的应用程序,用于启动屏幕,还是一个普通的桌面应用程序,恰好在Windows 8上?IIRC,DXSDK PixWin需要使用DXSDK头和libs构建东西,而VSPIX(IDE中的图形调试)需要使用Windows 8工具包头和libs。对不起,我指的是用于开始屏幕的Windows 8风格应用程序,Windows 8工具包头是什么?你是指Windows名称空间中的内容(即使用Windows;)吗?如果是这样的话,我已经包含了它们。有趣的是,在禁用本机调试器的情况下,图形调试器在SharpDX项目中运行良好。