RenderDocのShader Debugで"Source Debugging Unavailable"となり、HLSLでステップ実行、デバッグできない

お世話になっております。

UE5.6から、RenderDocのShader Debugで"Source Debugging Unavailable"となり、HLSLでステップ実行、デバッグできない状況になりました。

こちらで行ってることとしては、

1 新規プロジェクトを作成して、空のマップを作成。

2 UE5/Engine/Config/ConsoleVariables.iniの

r.Shaders.Optimize=0

r.Shaders.Symbols=1

r.Shaders.ExtraData=1

のコメントを外し有効にする。​

3 コマンドライン引数を​

“C:\UnrealProjects\MyProject\MyProject.uproject” NewMap -d3ddebug -AttachRenderDoc -dx11​

​でUnrealEditorを起動。

4 RenderDocでキャプチャ

5 ​適当なDrawIndexでOutputテクスチャのピクセルでデバッグピクセルを行う。

という手順で行っています。

何か対処方法などございますでしょうか?​

Steps to Reproduce

お世話になっております。手元でも試そうと思うのですが、お手数ですが試しているRenderDocのバージョンを教えて頂けますでしょうか?

お世話になっております。

v1.38 (built from 34c3c407)(QT version 5.15.2)

を使っています。

お世話になっております。

最新版のv1.39でも同じ症状を確認しました。

よろしくお願いいたします。

お世話になっております。こちらでも同様の問題を確認いたしました。ShaderDebug用のデータが正しくアウトプットされていないようです。修正が容易か確認しておりますのでもう少々お待ち下さい。

お世話になっております。こちらDX12ではただっしくPDBデータが生成されることを確認いたしました。

本件ですがDX11で動かすことを前提としておりますでしょうか?

お世話になっております。

-dx11から-dx12に変更しても同じ症状を確認しております。

ただ、Renderdocのシェーダデバッグ画面のアセンブリとHLSLを切り替えるボタンが、

-dx11の場合は、

Source debugging Unavailable.

でグレー表示、

-dx12の場合は、

Debug in Source

となっていて、ボタンを押せるけど反応なし、

という違いがありました。

以上よろしくお願いいたします。

お世話になっております。こちらご返答にお時間頂き申し訳ございません。

問題を切り分けておりますが、二点ご確認させてください

  • UE5.5までは正常に動作しておりましたでしょうか?
  • またDX11での確認も必要でしょうか?DX12のみの動作でも良いでしょうか?

お世話になっております。

>UE5.5までは正常に動作しておりましたでしょうか?

正常に動作しておりました。

>またDX11での確認も必要でしょうか?DX12のみの動作でも良いでしょうか?

DX12で見たいことのほうが多いですが、DX11で描画バグを発見してRenderDocでShaderデバッグするということもあるかと思うので両方必要です。取り急ぎDX12のみとかでも大丈夫です。

現状はUE5.5を用いてRenderDocでShaderデバッグしています。

お世話になっております。確認に時間がかかりすいません。

こちらですが、DX12/DX11共に正しく動作する方法を確認いたしました。

[Image Removed]

ShaderのPDBファイルが5.6より別で出力されるようになったため、RenderDocのTools/Settingメニューから、Coreの項目にある"Shader debug search paths"に 使用しているプロジェクトのProject/Saved/ShaderSymbolsフォルダを指定してみたところ、適切にソースコードのデバッグが表示されるのを確認いたしました。

お手数おかけいたしますが、ご確認頂けますと幸いです。

お世話になっております。

こちらでもご提示の手順でHLSLにてシェーダデバッグできることを確認いたしました。

パス追加という手順を毎回いれないといけないのが面倒な気がしています。(今まで必要なかったので)

以上よろしくお願いいたします。

お世話になっております。

こちら確認いたしましたが、シェーダバイナリ自身とpdbデータを分離するようにし、PDBを別に削除できるなどデータ削減などを容易にするためというのが一つの要因とのことです。おっしゃる通り都度設定を行うのは面倒かとは思うのですが、残念ながら昔の挙動に戻すCVarなどはなさそうです。。

恐縮ですがご理解頂けますと幸いです。。

お世話になっております。

承知いたしました。

これでクローズとさせていただきます。ありがとうございました。