Skip to content
Go back

DirectXトラブルシューティング

· Updated:

IDXGISwapChain

Presentから抜け出せない (2021/12/19)

  • メインスレッド以外でPresentを呼び出し中にウィンドウを閉じると固まる
  • メインスレッド以外でPresentを呼ぶと、メインスレッドにメッセージを送るようになっている
    • 応答待ちの間にメッセージループを抜けると発生する様子
  • メッセージループを回している間にPresentループから抜け出すことで対処できる

バックバッファを解放できない (2021/12/19)

  • メインスレッド以外でPresentを呼ぶと、バックバッファを解放するときに例外が発生する
  • デバッグレイヤーによると、バックバッファと思われるリソースがGPUにより使用中、らしい
  • メインスレッドでPresentを呼び出してやると、なにやら正常に戻る様子
    • そうして呼び出しても相変わらずエラーになった (2022/02/06)
  • レンダラが持つリソースをすべて解放してから終了処理を行うようにしたら問題が解消された (2022/06/07)
    • 根本的な原因は不明

バックバッファをUAVとして使えない (2022/05/04)

  • USAGEを指定してもUAVを作ろうとすると検証レイヤーに怒られる
  • 大抵のフォーマットはUAVサポートが任意なので、それに引っかかっている可能性がある?

DXC

includeファイルが開けない (2022/05/30)

  • 特定のヘッダーファイルをincludeしようとするとnot foundエラーが出た
  • 日本語のコメントを消すと正常にコンパイルできるようになった
  • BOMなしUTF-8を正しく認識できないためか、漢字などの特定の文字が含まれていると発生する
  • BOMありUTF-8などにすると問題なくコンパイルできる

RenderDoc

対象アプリの画面が表示されない (2022/05/07)

  • 画面が白いままオーバーレイ表示すら行われなくなった
  • ウィンドウを閉じるにも閉じられず、例外を踏んでようやく強制終了できた
  • RenderDocがPresentを起点にフレーム情報を収集する設計なので、Presentを非同期に呼び出すとうまく噛み合わない可能性がある?
  • 慣例通り、最後にPresentを呼び出すようにすると問題なく動作する