2014-02-05 33 views
1

產生着色器調試信息(PDB)我試圖在VS2012使用圖形診斷工具來調試我的着色器的DirectX 11 SDK應用程序,但是當我點擊開始調試在着色器之一圖形像素歷史面板我得到Pixel Shader.pdb未加載我無法在任何地方找到pdb文件。如何在VS2012

我嘗試使用D3DX11CompileFromFileD3DCOMPILE_DEBUG標誌編譯在運行時着色器,以及使用的HLSL編譯器,調試信息開啓(/ OD /子),但這些選擇都不是生產PDB文件,我可以在圖形診斷工具使用。

如何生成這些文件?

回答

2

我覺得這個"Pixel Shader.pdb not loaded"的信息有誤導性。沒有任何由HLSL編譯器生成的.pdb文件。所有調試信息都集成到二進制文件(內存塊或.cso文件)。 您的着色器文件名爲"Pixel Shader"?也許它說不是一個着色器,但有些類型的Visual Studio的內部源文件(VS2012着色調試器是有點不穩定,有時)

一些想法,也許可以幫助你解決問題:

  1. 確保你的調試和發佈輸出二進制文件不會混淆。檢查項目屬性和每個着色器屬性的調試和發佈配置。
  2. 確保您正在加載正確的着色器文件。檢查所有文件路徑的十倍。
  3. 清理您的項目,手工清除所有的二進制文件。再次重建。
  4. IIRC,在圖形調試器中,您只能調試着色器,離線編譯(即不能通過D3DX11CompileFromFile)。
  5. 嘗試直接使用fxc.exe進行編譯。
  6. 使用不包含空格和特殊字符的文件名。
  7. 確保您的測試着色器足夠簡單,因此調試器不會崩潰。你要使用默認模板。
  8. 如果仍然無效,請編寫一個最小示例項目,檢查它是否無效,然後在此處發佈,以便我們可以對其進行測試。
  9. 嘗試VS2013
  10. 嘗試使用您的視頻卡供應商的調試工具(例如NVIDIA®(英偉達™)nVIDIA或AMD GPU PerfStudio),查看它是否與Microsoft工具有關。

希望它以某種方式幫助。

+0

感謝您的回答。我已經嘗試了你提到的大部分內容,但沒有結果。稍後我會看看Nvidia Nsight。現在我已經解決了我的問題,而這個問題原來是一個嚴重對齊的常量緩衝區成員。 – jaho