My existing project uses GLFX which is a shader creation library. You create single shader files using a slightly modified shader structure, and GLFX translates them and splits them into individual shaders (vertex, fragment, geometry, etc) at runtime.
I had been curious if this would pose a problem with Shader Debugging in NSight. If I pause frame, I can see a list of shaders. I can double click on them and see their source code (the names are sort of random, possibly generated by GLFX),
however, if I add breakpoints, they appear as empty circles and on mouse hover I see the disclaimer:
“The breakpoint will not be hit. No source correspondance for breakpoint ID …”
Is this because NSight doesn’t know where to find the shader source code in my project? (Since it exists in GLFX format)
Well I assumed it was GLFX problem so I tried downloading an example OpenGL project http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/
I compiled it with CMAKE for Visual Studio 2010 and gave it a test run. Running from my visual studio debugger the window loads fine and draws the triangle. Then I tried Running with NSight, and the application fails to run because the shader files fail to be opened (no doubt NSight is somehow preventing the application from accessing these files). NSight really doesn’t want to cooperate with me! :\
So to summarize my questions:
Can NSight work if the shader source files are generated at runtime?
What does “The breakpoint will not be hit. No source correspondance for breakpoint ID …” mean and how do I address this?
Why, when I try to run a project with static shader source files, is NSight preventing opening of the shader files?
Suggestions or advice will be much appreciated!