locked
Any tools available for WP8 shader or GPU debugging? RRS feed

  • Question

  • I'm in the middle of porting a fairly large engine over to WP8 and am having trouble getting the rendering to work. As far as I can tell, everything is working fine and I believe I may actually be rendering, but am not sure the vertex information getting into the shader is correct.

    Are there any tools similar to PIX available for looking at this information? Or any methods for getting this information via code? All my code is native C++ and the shaders are, of course, compiled HLSL.

    Wednesday, January 16, 2013 3:07 AM

Answers

  • There's the vertex shader debugger. It's integrated into Visual Studio, though from what I've found whether or not it works is dependent with how you are displaying content to the screen (ex: I've had no success using it with a SurfaceImageSource). To use it right-click in the VS tool bar and ensure that the "Graphics" toolbar is available. Start Diagnosis (ALT+F5) to start debugging and use the Print Screen button to capture a screen. Once captured a screenshot appears on your computer and you can click on any pixel in it to see what calls were responsible for rendering that pixel, see what values were passed into your shader, and see the results of the individual steps in the vertex shader. There's a lot more documentation on this on the MSDN site. 

    Joel Ivory Johnson | http://www.j2i.net | Windows Phone Developer MVP
    It takes all the running you can do to stay in one place.If you want to get somewhere else,you must try to run at least twice as fast as that.

    • Proposed as answer by Joel Ivory Johnson Tuesday, January 22, 2013 10:12 PM
    • Marked as answer by Seed_Kent Wednesday, January 23, 2013 8:17 PM
    Friday, January 18, 2013 6:47 PM

All replies

  • There's the vertex shader debugger. It's integrated into Visual Studio, though from what I've found whether or not it works is dependent with how you are displaying content to the screen (ex: I've had no success using it with a SurfaceImageSource). To use it right-click in the VS tool bar and ensure that the "Graphics" toolbar is available. Start Diagnosis (ALT+F5) to start debugging and use the Print Screen button to capture a screen. Once captured a screenshot appears on your computer and you can click on any pixel in it to see what calls were responsible for rendering that pixel, see what values were passed into your shader, and see the results of the individual steps in the vertex shader. There's a lot more documentation on this on the MSDN site. 

    Joel Ivory Johnson | http://www.j2i.net | Windows Phone Developer MVP
    It takes all the running you can do to stay in one place.If you want to get somewhere else,you must try to run at least twice as fast as that.

    • Proposed as answer by Joel Ivory Johnson Tuesday, January 22, 2013 10:12 PM
    • Marked as answer by Seed_Kent Wednesday, January 23, 2013 8:17 PM
    Friday, January 18, 2013 6:47 PM
  • Thanks Joel! It looks like the express version doesn't actually support the graphics debugger, but the info you provided is a great reason I can present to try and get my boss to upgrade us to a full retail version of 2012!
    Wednesday, January 23, 2013 8:17 PM
  • Thanks Joel! It looks like the express version doesn't actually support the graphics debugger, but the info you provided is a great reason I can present to try and get my boss to upgrade us to a full retail version of 2012!

    I'm all for developers having access to more debugging tools. They really pay for themselves in the nights that would otherwise be sleepless and other forms of what would be lost productivity reclaimed. 

    If you need any additional information or screenshots let me know. 


    Joel Ivory Johnson | http://www.j2i.net | Windows Phone Developer MVP
    It takes all the running you can do to stay in one place.If you want to get somewhere else,you must try to run at least twice as fast as that.

    Wednesday, January 23, 2013 8:56 PM