For those interested in game development technology, it’s been a great week of product releases! Monday we saw the 1.0 release of
I thought I'd write a short introductory article on using
I recommend that you
Once you have the DXSDK installed on your computer, you'll find PIX under the Start menu at:
Start
The first thing you need to do in PIX is to create an
Note that I've set the "Program path" to the executable for my
That wasn't too hard to set up...let's see what happens! Click "Start Experiment" to launch the target program under PIX.
PIX overlays some information on top of the target program while it runs. When you press F12, you should see the File size jump from zero to a few megabytes (the size varies depending on the program). This lets you know that the capture took place, and you should close your program at this point. PIX responds by bringing up a
The run file window is divided into several
The Events pane shows one row for each
The Render tab always shows the contents of the back buffer as of the currently-selected event. So you can watch your frame render bit by bit, by selecting each Draw call. The "D down" toolbar button makes this easier; it moves to the next Draw call. (But see below for a note about programs that change the render target).
When a Draw call is selected, the Mesh tab shows useful information about the vertex data that was processed by the graphics pipeline. You can see the data both before and after going through the vertex shader, and see where it ended up relative to the viewport.
Note that several object pointers are shown in blue text. This indicates that PIX can show more information about the objects. For most object types, you can right-click a blue pointer and choose to view the object. This brings up a new tab in the Details pane that shows the object contents. Viewing the Direct3D Device object lets you see all the settings for the device, including all the render state and bound objects such as vertex buffers, index buffers, and textures.
If your program uses multiple render targets (as the Feedback program does), you should keep in mind that the Render tab shows the contents of the back buffer, not the current render target. So you should find the SetRenderTarget call and bring up a view of the render target to see the drawing happen on that surface. The tab for the current render target has a little icon next to it.
I hope this gives you a sense of how PIX can help you examine your program’s usage of Direct3D. Give PIX a try and see if it gives you ideas on how to make your program run better! I’ll give more examples of using PIX in future posts.