Debugging DX11 Shaders as a hobbyist.

Started by
16 comments, last by cephalo 10 years, 7 months ago
Well, I admit, though the shader debugging works with my PIX, I rarely use it. Never found it particularly useful. I rather put some "logging" into my shaders by outputting a debug value. This is easy for pixel shaders. For others you have to pass them along first (maybe with an additional semantic).

Checking the streams on the other hand is useful indeed. How about geometry shader stream out and read back through staging ? Are you familiar with that?

I use SlimDX, but you really should give Intel's GPA Frame Analyzer a shot. At least the input stream is viewable - you can even look at the geometry with an arcball camera.
Advertisement

It is an unfortunate situation... Are you able to run the program from your VS IDE? If so, do you get any error messages or anything like that? And do you have the debug layer of the device being used???

To prove that your system isn't messed up, you could try downloading the Hieroglyph 3 project and running the 'BasicTessellation' demo. That will tell you if the problem is coming from your program or if it is something systemic on your machine.

Ok, I brought this setup to my home computer, and it works! PIX is working here. Unfortunately, all the vertex data looks fine too, both on the input and after the instancing. I wonder what the deal was with my work computer?

Anyway, I'm not sure why I'm only seeing the cleared background. I may have some render state set wrong or have the wrong primitive chosen. My bezier triangle has 10 control points, so I'm using PrimitiveTopology.PatchListWith10ControlPoints because it seems right, but in PIX on the mesh tab I'm not seeing triangles, only points. Obviously if you draw points without setting any size, you aren't likely to see anything.

Also, something that is very simple but that helped me a lot in debugging the actual shader code... Have a way to recompile your shaders during run-time. This has really saved me a lot of time, especially since reloading resources at the beginning of the application takes quite a long time. Now I can make tweaks within my shaders without having to restart the whole app.

I know it's pretty trivial, but it really increased my productivity.

Any news on this yet? I'm using express edition on windows 8 and can't uninstall the update. This sucks.

"Spending your life waiting for the messiah to come save the world is like waiting around for the straight piece to come in Tetris...even if it comes, by that time you've accumulated a mountain of shit so high that you're fucked no matter what you do. "

Nothing has changed yet. Your only option for your first DirectX 11 app is to hope that you can see something on the first run. If you don't, there are many things that could prevent things from being visible, and without a debugger, its like feeling your way out of a dark cave and hope you aren't miles away from daylight. Not impossible, but highly unpleasant and time consuming.

It's a bad time to start learning DirectX.

I've found intels GPA to be a suitable replacement. I recently moved from x9 to x11 and although i had to go right back to a simple triangle to get anything on screen, i was able to debug the issues i had. After that i was able to bring back most if not all of my frameworks capabilities within a week or so.

That's a good tip Burnt_Fyr. I tried it myself unsuccessfully, but I think it's because I'm using some features from DX 11.1.

This topic is closed to new replies.

Advertisement