1

Pix でシェーダーをデバッグできません。以前はまったく問題なく使用していましたが、今日、頂点シェーダーまたはピクセル シェーダーのいずれかをデバッグしようとすると、このエラーが発生し続けます。

以前に成功したコールは、ファーリングの再生に失敗しました:

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. "

グラフィックカードのドライバーを調査するつもりですが、上記のエラーを確認する方法についてはよくわかりません。

DirecX 9 XNA アプリケーションで Pix を使用していることも付け加えておきます。デバッグ ビルドとリリース ビルドの両方をテストしてみました。D3D 解析を無効にして、フレーム キャプチャを使用しています。

誰かがそれが何であるか考えているなら、助けてください!

乾杯

4

2 に答える 2

0

このエラーは、ハードウェア障害を示唆しています。これを解決するには、システムを復元する必要があると思います。

ただし、シェーダーのデバッグに関しては、必ずしも XNA バウンドであるとは限りません。@crazylpfan によって提案されたソフトウェア パイプラインを使用して、スタブ D3D プログラムを作成することもできます。その後、デバッグのために PIX をそのプログラムにアタッチできます。

于 2013-03-14T01:41:40.333 に答える
0

単なる好奇心ですが、頂点処理をハードウェアではなくソフトウェアで行うとうまくいきますか?

すなわち

Direct3D.CreateDevice (D3DADAPTER_DEFAULT、D3DDEVTYPE_HAL、HWindow、D3DCREATE_SOFTWARE_VERTEXPROCESSING、D3DInit、デバイス);

最後にコードを実行してから他に何も変更されていない場合は、ドライバー (または DirectX コントロール パネルの一部の設定) が変更された可能性があります。

于 2013-03-07T11:25:18.297 に答える