Introducing PIX on Windows (beta)
Welcome to our new PIX team blog!
PIX is a performance tuning and debugging tool for game developers. It has a long and storied history spanning three generations of Xbox console. Today we are pleased to announce that a beta release of PIX is now available for analyzing DirectX 12 games on Windows as well.
PIX on Windows provides five main modes of operation:
- GPU captures for debugging and analyzing the performance of Direct3D 12 graphics rendering.
- Timing captures for understanding the performance and threading of all CPU and GPU work carried out by your game.
- Function Summary captures accumulate information about how long each function runs for and how often each is called.
- Callgraph captures trace the execution of a single function.
- Memory Allocation captures provide insight into the memory allocations made by your game.
For best results we recommend running PIX on:
- Windows 10 build 14393 (Anniversary Update, aka RS1) with latest updates
- 32 GB RAM
- A Direct3D 12 GPU with the latest available graphics drivers. PIX will not work correctly with older drivers!
- AMD driver >= 21.19.411.0 (17.1.1)
- Intel driver >= 126.96.36.19942
- NVIDIA 970 or better with driver >= 188.8.131.5290. Note that NVIDIA’s support for GPU shader instruction disassembly requires a DLL. Please use this link to get the DLL.
See the requirements page for more information.
This is a beta release, which means bugs are probable and there are plenty of features we want to add but haven’t yet gotten around to. If you encounter a problem, or have a suggestion for how PIX could be improved, we’d love to hear from you. And stay tuned for GPU hardware counters, which will provide richer low level performance information when enabled via per-GPU plugins. The first of these is coming Real Soon Now…
To learn how to use PIX, check out the documentation and video channel. Last but not least, download the PIX beta here.
- PIX only supports capturing D3D12 content, not D3D11 or 11on12.
- PIX only supports 64 bit apps (both UWP and Win32). PIX does not support x86 apps.
- PIX only captures data from the specific process that it launched or attached to. It does not support child processes. If your title uses multiple processes, you will need to bypass any client/launcher processes and have PIX launch/attach the main game executable.
- Counter values other than timing in the event list are not currently rolled up to their parent bundle or marker region.
- GPU captures are not generally portable between different GPUs or even different drivers on the same GPU. PIX will warn if you attempt to run analysis on a capture whose capture device differs from the current playback device. You can continue past this warning, but be aware there may be compatibility issues that cause it to fail.
- GPU captures do not currently overlap GPU work on different queues. If your app uses asynchronous compute to execute rendering and compute work simultaneously, it will show up in the PIX timeline as being executed in a non-parallel fashion.
- PIX does not support multi-gpu enabled apps. You can use PIX on a machine with multiple GPUs, but PIX will always capture/playback on the primary adapter.