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.

Screenshot showing PIX Overview window with correlation arrows in the Timeline lane.
Fence Signal/Wait arrow indicators in GPU captures


Buffer Viewer & Memory Viewer

This release adds several improvements to the buffer viewer and memory viewer, including:

  • Support for int32_t and int64_t in buffer viewer format syntax.
  • Added option to display integer values with comma separation in the buffer viewer and memory viewer.

Screenshot of PIX Buffer Viewer with an arrow indicating the button to toggle integer values with comma separation.
Display integer values with comma separation in the buffer viewer and memory viewer

  • Added Table view to memory viewer.
  • Support for Home and End keys in the buffer viewer.
  • Added a syntax help window.

Screenshot of the Syntax Help window in the Buffer Formatter in PIX
Syntax Help in the Buffer Formatter

  • Fixed a crash during rendering if no structure type has been provided in the buffer formatter.
  • Improved performance for large buffers in tree mode.


Document Tabs

This release adds a “Close all captures but this” option to the document tabs menu.

Screnshot showing the document tab menu in PIX
Right click the document tab to show the document tab menu

Additionally, a confirmation dialog popup will now appear when closing documents to prevent accidentally closing captures.

Screenshot showing a dialog box in PIX asking "Are you sure?"

API Objects Table

This release adds sorting to the API Objects table in the pipeline view. Additionally in this view, column widths now persist.

Screenshot of the PIX API Objects table with a red box indicating the sorting arrow
Sorting now supported in the API Objects Table


Timing Captures

  • Improve rendering of small bricks in timing captures — when too small to warrant (side) borders, don’t draw them. This allows the stronger color of the bricks themselves to show through, instead of just the (barely visible) border color when events are densely packed.
  • Add support for reporting the process name when other threads are viewed during analysis.
  • Adds support for looking up, decoding and displaying operation start stacks.
  • Improve performance for building the stack tree and function list
  • Support extracting memory events from new timing captures when selecting a subsection to save out to a smaller capture.
  • Usability improvements for memory analysis. We’ve made several fit-and-finish usability improvements to make analyzing memory captures more intuitive and effective.


Other Improvements

  • Removed sysmon timing captures.
  • Added copy support in message dialog.
  • Improve handling of engine crashes. Now, on engine crash the user is presented with the opportunity to save before any temporary files are deleted.
  • Added an early preview of Dark Theme. Report any bugs or feedback using the Send Feedback button in PIX.


  • Fixed issue where timing captures would crash if the command queue was not found while processing GPU timing data.
  • Fixed issue where the ‘Flags’ field for a BuildRaytracingAccelerationStructure would show numbers instead of definitions.
  • Fix GPU timing data for ExecuteCommandLists when commandlist operations get reordered by the driver.
  • Fixed issue with inaccurate shader access tracking for adjacent finite-sized uav arrays.
  • Fixed “Unspecified Error” when debugging shaders caused by undetected instrumentation overrun.
  • Fixed a crash when starting analysis on an HLK test.
  • Fixed issue where timing data would be incorrect for the first event in a queue when work is submitted on two queues and one is not dependent on the other.
  • Fix missing events caused by overlapping command lists in timing captures.
  • Fixed a crash when using shaders with some amount of call depth when optimizations are disabled.


Discussion is closed.

Feedback usabilla icon