2024年8月11日日曜日

PIX GPUキャプチャ失敗

今までDirectXの描画でうまくいかない部分をPIXで確認して何度もヒントを貰って直せた。

ところが突然PIXのキャプチャに失敗するようになった。
直前に直したであろうソースを戻しても記憶が曖昧でうまくいかない。
それから2,3日キャプチャができない日が続いた。

ネットで調べると、サスペンド状態で実行してキャプチャすると成功するというのを見つけ、試してみるとたしかに成功した。
ただこれは狙ったタイミングではキャプチャできず、一番最初のみうまくいく。

その状態のまま開発を続けたが、どうしてもキャプチャしたい状態が出てきてちゃんと調査することにした。


ほとんどの動作をコメントにして、キャプチャできるかを試したら久しぶりに成功した。
この状態から徐々に処理を開放していき駄目になる部分を特定した。


最終的に原因の特定に成功。


キャプチャ失敗の原因



最終的に失敗していた箇所が中間レンダーターゲットをテクスチャにコピーする処理だった。
このコピー前後にバリアを張っていたが、外してもデバッグレイヤで怒られないので不要なことはしないようにコメントアウトしていた。
実はこれが原因でPIXのキャプチャ失敗するようになったようだ。

バリアを戻すと、PIXでキャプチャが成功する。
実際の動作には何の問題もないがPIXのために必要なのか、それともデバッグレイアのチェックが抜けていて実は必要な処理なのか?

PIXでキャプチャできないのは困るので、バリアのコメントを外して復活させることで解決した。

0 件のコメント:

コメントを投稿