visual studio - How to generate shader debug information (pdb) in VS2012 -


i'm trying debug shaders in directx 11 sdk application using graphics diagnostics tool in vs2012, when click start debugging on 1 of shaders in graphics pixel history panel i'm getting pixel shader.pdb not loaded , i'm not able find pdb file anywhere.

i tried compiling shaders @ runtime using d3dx11compilefromfile d3dcompile_debug flag using hlsl compiler debugging information turned on (/od /zi) none of these options producing pdb file use in graphics diagnostics tool.

how generate these files?

i think "pixel shader.pdb not loaded" message misleading. no .pdb files generated hlsl-compiler. debug info integrated binary (either memory blob or .cso file). shader file named "pixel shader"? maybe says not shader, kind of visual studio's internal source files (shader debugger in vs2012 unstable sometimes)

some ideas that, probably, can solve issue:

  1. make sure debug , release output binaries not messed up. check both debug , release configuration of project's properties , each shader's properties.
  2. make sure loading right shader file. check ten times file paths.
  3. clean project, eliminate binaries hand. rebuild again.
  4. iirc, in graphics debugger can debug shaders, compiled offline (i.e. not d3dx11compilefromfile).
  5. try compile using fxc.exe directly.
  6. use filenames not contains spaces , special characters.
  7. make sure test shader simple enough, debugger not crash. thy use default template.
  8. if it's still doesn't works, write minimal example project, check doesn't works, post here can test it.
  9. try vs2013
  10. try videocard vendor's debugging tool (such nvidia nsight or amd gpu perfstudio), see if problem microsoft tools or not.

hope helps somehow.


Comments

Popular posts from this blog

python - Subclassed QStyledItemDelegate ignores Stylesheet -

java - HttpClient 3.1 Connection pooling vs HttpClient 4.3.2 -

SQL: Divide the sum of values in one table with the count of rows in another -