Microsoft Introduces PIX on PC, Might Help Devs with DirectX 12 Optimization
If you're a game developer who at some point worked on Xbox platforms, you probably remember PIX. It's Microsoft's debugging and performance tuning tool and it's finally coming to Windows PC.
The beta can now be downloaded here and it can help fellow game developers analyze DirectX 12 games on Windows, which can hopefully lead to better optimization.
According to Microsoft, PIX on Windows features 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.
If you intend to give it a try, make sure you have a DX12 enabled GPU with the latest drivers, 32GB of system RAM and Windows 10 build 14393 (Anniversary Update, aka RS1) with latest updates, as those are the requirements.
You should also be mindful of the following notes before using the software.
- 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 timeline as being executed in a non-parallel fashion.
- PIX does not support multi-GPU enabled apps. You can use it on a machine with multiple GPUs, but PIX will always capture/playback on the primary adapter.