Upcoming Events
Southwest Gaming Expo
11/20 - 11/22 @ Dallas, TX

Workshop on Network and Systems Support for Games (NetGames 2009)
11/23 - 11/25 @ Paris, France

ICIDS 2009 Interactive Storytelling
12/9 - 12/11 @ Guimarães, Portugal

Global Game Jam
1/29 - 1/31  

More events...


Quick Stats
6899 people currently visiting GDNet.
2341 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!



Link to us

Link to us

  Intel sponsors gamedev.net search:   
Microsoft Developers Day - Performance Tools Update – David Cook
Posted March 4 6:45 PM by Sean Kent

So what’s been added or updated in PIX? Well, the system monitor has been refined some more. Included in it now are ODD (Optical Disk Drive) counters and events for the Xbox. Continuous capture on the Xbox has been improved so that it has much less overhead. User defined Dr. PIX warnings are also now supported. On PIX for windows we’ve seen the addition of a GPU timing bar (Vista). You can now track constant buffers in DirectX10. Finally, source level sahder debugging in DirectX10 is now supported.

The system monitor has been completely rewritten for the November XDK. It now has higher throughput from the Xbox to PC. A more responsive UI has been introduced. Events and counters are now time based, and no longer frame based. Furthermore, all counters are now recorded, and all warnings are evaluated, even those that you have filtered out. This allows you to retroactively add counters and event graphs, turn on Dr. PIX warnings, and create user-defined counters and warnings that can be applied to already captured sessions.

One of the biggest performance hazards on the Xbox is loading data from the disk drive. Optical reads are extremely slow, and seeks are even worse. The new PIX has added events for seeks and reads. It’s also added head positioning counters. This allows you to optimize your disk loads and find those areas of your application where you might be able to squeeze out a bit faster load times by arranging data in a linear manner, to reduce seeks. Thankfully you don’t have to burn a disk to test it, but instead can configure a layout using PIX.

Continuous capture has been updated, to both streamline it and make it more useful. It does require some Xbox 360 memory to use however. Since continuous capture captures all counters, you are able to retroactively generate timing data for any range of frames. This allows you to really drill down into performance problems that you don’t actually have an idea of where they are and what’s causing them. Continuous capture doesn’t require any source instrumentation, but does perform writes to the Xbox 360’s hard drive. User defined warnings are written in a subset of C# and can be created based on built-in counter data. They can be applied after the fact, allowing for you to receive warnings from previously recorded sessions.

PIX now includes a GPU Timing Bar in Windows Vista. ETW (Event Tracing for Windows) allows for instrumentation of release drivers. Using these instrumented drivers you can get accurate GPU timing numbers for Window Vista machines. However, CPU times still include significant overhead.

Constant buffers in Direct3D 10 allow for an easy place to group together commonly used data that’s easy to replicate across many shaders. PIX now includes the ability to track, using single frame capture, how frequently constant buffers are updated, referenced, and how many bytes get used. Using this introspective ability you can identify unused portions of your constant buffers, and even portions that aren’t commonly used. Then you can refactor appropriately, thus reducing the amount of data pushed to the video card.

Finally we have the introduction of source level shader debugging, as of the June 2007, for DirectX 10. You do have to specify a few flags when compiling your shaders to assist PIX, including flags that indicate whether to optimize or not. Source level debugging is also available for the Xbox, however the debugging data is stored separately from the shader, and PIX will reproduce an upoptimized one locally while the Xbox runs an optimized version. Of course, on the table too is the ability to source level debugging on GPU captures, which were introduced in 2006.


 
 
Menu
 Back to GDC 2008
 See more Microsoft Developer Day
 Discuss this article