1

我无法让 Pix 调试着色器。我以前用过它完全没问题,但今天我在尝试调试顶点或像素着色器时一直收到这个错误:

之前成功的调用失败的furing播放:

EID:8 调用:IDirect3D9::CreateDevice() HRESULT:D3DERR_NOTAVAILABLE

如需更多信息,请单击“帮助”。

帮助提出了这一点:

"Playback failure is the error state that occurs following a successful timing capture.

There are many reasons why a call that succeeded at capture time can fail during PIX playback. Here are some common causes:

If the run file was captured on a system with different capabilities or more video memory. Also, PIX Win will use up more video memory than the original title did when it allowed debugging.

It can also occur if your Direct3D control panel settings are different from when the run file was captured. Some Direct3D 9 calls only fail when the debug runtime is active.

In the case of Direct3D 9 playback, the mesh viewer and shader debugging potentially use different device settings than the original application that can cause playback failures. For example, the shader debugging has to use a reference device. In this situation, there is a possibility that the HW device supports settings that are not supported under the reference device like StretchRect() filters. "

我真的不明白为什么它会在一天而不是下一天起作用,我将调查我的显卡驱动程序,但我对如何检查上述错误没有真正的了解。

我还应该补充一点,我正在将 Pix 与 DirecX 9 XNA 应用程序一起使用。我已经尝试过测试调试版本和发布版本。我已禁用 D3D 分析并正在使用帧捕获。

如果有人有任何想法,请帮忙!

干杯

4

2 回答 2

0

只是出于好奇,如果您使用软件而不是硬件来进行顶点处理,它是否有效?

IE

Direct3D.CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,HWindow,D3DCREATE_SOFTWARE_VERTEXPROCESSING,D3DInit,设备);

如果自上次运行代码以来没有其他任何变化,则可能是您的驱动程序(或 DirectX 控制面板中的某些设置)已被修改。

于 2013-03-07T11:25:18.297 回答
0

该错误表明硬件故障,为了解决这个问题,我认为您可能真的需要恢复系统一些东西。

但是在调试着色器方面,它不一定是 XNA 有界的,您甚至可以使用 @crazylpfan 建议的软件管道创建一个存根 D3D 程序,然后您可以将您的 PIX 附加到该程序进行调试。

于 2013-03-14T01:41:40.333 回答