PIX on Windows

Performance tuning and debugging for DirectX 12 games on Windows

PIX 1705.16 – AMD GPU counters, preliminary DXIL support, and more warnings

Today we released PIX 1705.16 beta.  New in this release:

AMD GPU counters
Preliminary support for DXIL (shader model 6)
More D3D12 usage warnings
Fixed problem capturing titles that use large numbers of resource heaps
HLSL syntax highlighting

 
AMD GPU Counters
We are delighted to announce a partnership with AMD to enable a rich set of hardware performance counters inside PIX. 

PIX 1704.27 – D3D12 usage warnings, Dr. PIX, and CPU hotpath analysis

Today we released PIX 1704.27 beta.  New in this release:

PIX warnings can now automatically detect some common but inefficient D3D12 usage patterns
First couple of Dr. PIX queries are now available on Windows
CPU hotpath analysis in timing captures
Create sections of your package layout file from File IO captures
Merge multiple traces into a single analysis in File IO captures
Added support for new D3D APIs introduced with Windows 10 Creators Update (ID3D12Device2,

PIX 1704.14-servicing – graphics driver compatibility fix

Today we released a bugfix update: PIX 1704.14-servicing.  This resolves an incompatibility between PIX and the latest NVIDIA graphics drivers.  This version is otherwise identical to the previous 1703.20.002 release (but stay tuned – we are hard at work on some new features that will be showing up soon).

PIX videos on Channel 9

From GDC 2017, Shawn Hargreaves and Max McMullen talk about D3D12 Performance Tuning and Debugging with PIX and GPU Validation.
Seth Juarez talks to Brian Rasmussen from the PIX team and Cameron Egbert from the Minecraft team about debugging and performance optimization for DirectX 12 games with PIX on Windows.

Using PIX on hybrid graphics systems

If you are using PIX on a laptop which contains both integrated and discrete GPUs, you may be disappointed to notice that we currently¹ default to running the PIX analysis engine on the less powerful integrated part.
For those who prefer to use the discrete GPU,

PIX 1702.23.002 – visualizers, better warnings UI, memory capture type tracking, and MSAA sample inspection

Today we released PIX 1702.23.002 beta.  New in this release:

Rendertarget visualizers
Improved Warnings user interface
Memory captures now show allocated types
On some hardware, the Pipeline view can now inspect individual sample values from MSAA rendertargets and depth buffers
Shader debugging bugfixes
Improved performance on captures that use tiled resources

 

PIX 1701.26 – GPU counter rollup, thread names, and high DPI UI

Today we released PIX 1701.26 beta and an updated WinPixEventRuntime (version 1.0.170126001).  The event runtime upgrade is optional, as the latest PIX is compatible with older event runtimes.
Most of these changes are in response to early feedback from customers.  Your input is valuable to us,

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.

Uncategorized

PIX 1908.16 – Shader debugging fixes

Today we released PIX 1908.16 which can be downloaded here. This is a servicing release that fixes a couple of issues that causes PIX to crash when inspecting or debugging shaders, otherwise it is identical to PIX 1908.02.

PIX CPU Tools: Introduction to New Timing Captures Videos

We’ve recently posted a series of 4 new videos to the PIX for Windows YouTube channel.  These videos provide an overview of the features in New Timing Captures.

Part 1 describes the improvements we’ve made to capture duration, capture open times and to the timeline itself.

Windows 10 Servicing Release KB4505903 required for instrumented CPU captures

If you’re running the 1903 build of Windows 10 (the Spring 2019) update, you must have KB4505903 installed to take Function Summary, Callgraph, and Tracked Functions captures.  Without this update, your title will hang when taking one of these captures.
To check whether you have this update,

PIX 1908.02 – Fixes for customer issues, plus DXR and New Timing Capture improvements

Today we released PIX 1908.02, which can be downloaded here. This release fixes miscellaneous bugs that were reported to us by customers. It also adds new CPU features to New Timing Captures, and adds some final touches to the new DirectX Raytracing (DXR) Pipeline View in GPU Captures.

GPU timing data in New Timing Captures

GPU timing data was added to the New Timing Captures preview feature in the PIX 1906.14 release.  This allows developers to view GPU work submission and execution, including async compute.
Getting Started
The application should be launched with the following GPU timings checkbox checked in the options to enable timing data collection.

PIX 1906.26 – Minor update fixes PIX on Insider Preview builds of Windows

Today we released PIX 1906.26, available for download here. This release makes PIX compatible with the latest Insider Preview builds of Windows.
Highlights

PIX now works on latest Inside Preview builds of Windows.
PIX no longer pops up an error message when trying to use a plugin with an unsupported GPU configuration (eg SLI).

PIX 1906.14 – GPU Timing in New Timing Captures

Today we released PIX 1906.14, available for download here.  This release adds GPU timings to the New Timing Capture preview and further improvements to DXIL shader debugging.
Highlights

New Timing Capture Improvements

Support for GPU timing data (see below)
Many other usability improvements,

PIX CPU Tools: Finding and Analyzing Context Switches

A context switch occurs when a CPU core switches from executing code on one thread, to executing code on a different thread, or going to idle.  When the OS switches the thread that is running on a CPU, it must save and restore state both for the thread that is being switched out,

PIX CPU Tools: Populating the Range Details view

The most common way to populate the Range Details view in the new implementation of PIX Timing Captures is to drag select a range of time in the Timeline using the mouse.  When you complete your selection, Range Details is populated with the data from all Thread and Core lanes for the range of time you selected. 

PIX CPU Tools: Graphing PIXReportCounter values in the Metrics View

The Metrics view in New Timing Captures allows you to graph the duration of PIX CPU events and any counter values that are reported using the PIXReportCounter API.  Graphing event durations is fairly discoverable in the UI, but I think it’s less well-known that counter values can be graphed as well.