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.
A few weeks ago we released a version of PIX that includes a Preview release of a new implementation of Timing Captures. This release represents a significant reboot of our CPU performance tools in PIX.
We’ve gotten a lot of feedback over the last few years about how our CPU tools in PIX compare with other AAA game-focused profiling tools.
Today we released PIX 1904.23, available for download here. This release contains a preview of the new Timing Capture implementation and improvements to DXIL shader debugging and pixtool as well as various other improvements and bug fixes.
Preview of a new implementation of Timing Captures (see below)
HLSL variables are now available during DXIL shader debugging
New pixtool features:
Use “take-capture –winml”
Today we released PIX-1903.26, available for download here. This release includes support for Variable Rate Shading in GPU Captures, and it adds support for Occupancy on NVIDIA Turing GPUs such as an RTX 2080.
Variable Rate Shading
Variable Rate Shading (VRS) is a powerful new DirectX 12 feature that allows applications to significantly reduce their pixel shading work in exchange for minimal loss of visual fidelity.
Today we released PIX-1903.12, available for download here. This release includes an exciting new feature in GPU Captures: High Frequency Counters.
With High Frequency Counters, developers can plot graphs of GPU hardware counter values over time and correlate ranges of the graphs back to specific events within their GPU Capture.
Today we released PIX-1901.28, which can be downloaded here. In this release we’ve made improvements to Timing Data in GPU Captures, added support for new GPUs from NVIDIA and AMD, and fixed miscellaneous other issues described below.
Timing Data Improvements for GPU Captures
We have significantly reworked how PIX collects Timing Data in GPU Captures.
Today we released PIX-1812.14, which adds support for selecting the playback adapter, displaying unbound resources and improvements to the occupancy lane. This release also includes various miscellaneous fixes detailed below.
Playback Adapter Selection
PIX now allows you to select the GPU on which to play back a recording.
Today we released PIX-1810.24, which adds support for the final DirectX Raytracing (DXR) API that’s part of the Windows 10 October 2018 Update (a.k.a. “RS5”). This release also fixes miscellaneous other bugs, including an incompatibility between PIX and the latest AMD 18.40+ drivers.
Today we released PIX-1810.02. This version includes:
Support for capturing Direct3D 11 apps on RS5
Support for capturing WinML workloads on RS5
Default file extension is now .wpix
Various bug fixes
Direct3D 11 on 12 Support
On RS5 PIX can now be instructed to use a Direct3D11-to-Direct3D12 translation layer to make GPU captures of Direct3D11 applications.
Today we released PIX 1807.19 which includes a new Shader Table Viewer.
The Shader Table Viewer has been added to the Pipeline View, which provides deep insight into a raytracing shader table’s contents.
The viewer visualizes how the shader table’s bytes will be interpreted by GPU.
Today we released PIX 1909.23* which can be downloaded here. This release contains new timing capture features, support for programmatic captures in pixtool, performance improvements and many bug fixes.
* 1909.23 is the new name for 1909.13. Sorry for any confusion.
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.
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.
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,
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 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.
The application should be launched with the following GPU timings checkbox checked in the options to enable timing data collection.
Today we released PIX 1906.26, available for download here. This release makes PIX compatible with the latest Insider Preview builds of Windows.
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).
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.
New Timing Capture Improvements
Support for GPU timing data (see below)
Many other usability improvements,
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,
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.