PIX on Windows

Performance tuning and debugging for DirectX 12 games on Windows

Latest posts

Aug 31, 2020
Post comments count 0
Post likes count 0

GPU Captures: How we support placed and reserved resources

Austin Kinross

Quick Links   Summary   Recap: placed and reserved resources in D3D12 In D3D12, there are three types of resources: A committed resource has its own dedicated backing memory that isn’t shared with any other resource. This makes them relatively easy for PIX to capture, so we won’t discuss them here. Placed and reserved resources don’t have their own dedicated backing memory. Instead, applications must create ID3D12Heap objects that own the backing memory, and applications must define “mappings” between placed/reserved resources and the ...

Aug 27, 2020
Post comments count 0
Post likes count 0

PIX 2008.26: Performance Improvements

Austin Kinross

Earlier today we released PIX on Windows version 2008.26, featuring a 100,000+ line rewrite of our component that takes GPU Captures. Morgan has described this release’s functional improvements in her blog post, but here we’ll take a closer look at the new performance improvements.    Recap: GPU Captures in PIX on Windows  As a reminder, developers can use GPU Captures in PIX to record the D3D12 GPU work performed by a region of their game or application, and then later play back the work in a controlled environment. This controlled environment allows developers to debug their GPU work or to analyze its...

Aug 27, 2020
Post comments count 0
Post likes count 0

PIX Release 2008.26 – Our biggest update to GPU captures since 2017

Morgan Grobin

PIX 2008.26 is released today. Our biggest update to GPU captures since 2017, this release contains significantly increased framerate improvements at capture time, capture-replay performance improvements, and broader application compatibility.

Aug 26, 2020
Post comments count 0
Post likes count 0

New documentation page: Finding and Analyzing Context Switches

Steven Pratschner

Hi PIX users, I've written a new documentation topic on how to use the features in Timing Captures to find and analyze context switches (here). Feedback and questions appreciated as always. Thanks, Steven Pratschner - PIX team

Aug 26, 2020
Post comments count 0
Post likes count 0

Analyzing stalls and context switches in Timing Captures

Steven Pratschner

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, and for the thread that is being switched in. This state, or context, includes data such as the current value of all registers, the program counter and so on. Saving and restoring this state is an expensive operation from a performance perspective, so reducing the overall number of context switches is often key to achieving predictable, ...

Jul 30, 2020
Post comments count 0
Post likes count 0

PIX 2007.29 – Dark Theme, bug fixes

Morgan Grobin

Today we released PIX version 2007.29 which can be downloaded here. This release introduces Dark Theme, a change to timing capture file formats, and includes several bug fixes.   Dark Theme PIX now has a Dark Theme! You can enable Dark Theme in the Theme tab in the Settings menu. We hope this often requested feature will keep eyes feeling fresh while working in the dark, and allow you to choose a theme that matches other apps in your toolchain. Theme preference persists between app launches. Note that implementation of dark theme is incomplete for the mesh viewer and message dialog boxes. If you run ...

Jul 6, 2020
Post comments count 0
Post likes count 0

PIX 2006.26 – Fence Signal/Wait Arrows in GPU Captures

Morgan Grobin

Today we released PIX 2006.26 which can be downloaded here. This release contains support for fence signal-wait arrows in GPU captures, document tab behavior improvements, buffer viewer enhancements, and many bugfixes.   Fence Signal-Wait arrows for GPU captures GPU captures now track and visualize fence signals and waits to help you understand synchronization issues. You can also use this feature to spot opportunities for async compute work, by finding work on the graphics queue that can’t overlap with any async compute work due to signals/wait patterns.   Buffer Viewer & Memory Viewer...

May 4, 2020
Post comments count 0
Post likes count 0

PIX 2004.27 – Improved struct support in the Buffer Viewer, CPU Memory and File IO Data in Timing Captures

Morgan Grobin

Today we released PIX 2004.27 which can be downloaded here. This release contains improved support for structs in the Buffer Viewer, and support for CPU memory allocation data and file I/O data in Timing Captures. This version also includes an updated plugin for AMD GPUs, and supports a new pixtool flag to help automate grabbing an unknown number of captures. Improved struct support in the Buffer Viewer The format specification syntax used in the buffer viewer has been enhanced. It now supports true nesting of structures, as well as arrays. With these additions, the default format descriptions of constant buffe...

Mar 26, 2020
Post comments count 0
Post likes count 0

PIX 2003.26 – DirectX 12 Ultimate and DXIL debugging

Damyan Pepper

Today we released PIX 2003.26 which can be downloaded here. This release contains support for DirectX 12 Ultimate, source-level debugging of DXIL shaders, a new GPU capture timeline, CPU/GPU event correlation in new timing captures and many more bug fixes and performance improvements. DirectX 12 Ultimate Support PIX on Windows now has initial support for all the DirectX 12 Ultimate features: Variable Rate Shading support in PIX was first added in PIX 1903.26 and continues to be supported now! Mesh shader output viewer in action: DXIL Source Level Debugging We’ve updated PIX’s shader de...