调试HLSL for Windows 8应用程序

时间:2012-10-04 00:36:11

标签: directx hlsl debugging sharpdx

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

对于SharpDX项目(C#/ WinRT / XAML / SharpDX),我无法使用Managed Only Debugger。我不得不将调试器设置为混合(管理和本机)以使其工作。

答案 1 :(得分:0)

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

虽然这会消除错误,但它可能会或可能不会解决问题。我有一个类似的场景,使用托管在托管组件中的SurfaceImageSource(C ++)和在C ++项目中托管DirectXPage。在这两个项目中,似乎DirectX调试无法捕获帧。看来此功能仅适用于使用DirectX UI的程序(没有托管UI组件)。