PIX 1906.14 – GPU Timing in New Timing Captures

Stephen Hitchcock

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, performance improvements and bug fixes
  • New pixtool features:
    • New ‘launch’ options: –remote, –force11on12, –ignore11on12.  Run “pixtool –help launch” for more information.
    • Added ‘take-new-timing-capture’ command.  Run “pixtool –help take-new-timing-capture” for more information.
  • GPU Capture Improvements
    • New event list control – can now pin columns, sort without losing hierarchy as well as general performance improvements
    • Fixed issue with extremely slow capture-time performance when using reserved resources (previously this was worked around by copying dxcompiler into the same directory as the title)
    • Fixed various shader debugging issues
  • PIX has a new icon!

GPU Timing Data

This release of PIX adds GPU Timing Data to the preview of New Timing Captures. Like with Legacy Timing Captures, GPU Timing data displays GPU work alongside your API calls; in the graph below, each bar represents the Top of Pipe to End of Pipe duration of a GPU operation on the Command Queue:

In the future, we plan to add more features currently found in existing Timing Captures, including:

  • Vsyncs and Presents
  • Visualizations that show correlation between GPU and CPU PIX events
  • Fence signals and waits
  • GPU memory usage

Known Issues

  • PIX is currently incompatible with Windows Insider Fast Builds

Other Changes

  • Copy-to-clipboard support for about box / version data
  • Line wrapping for recent folders with long names
  • Removed erroneous error displayed when cancelling capture opening
  • The amount of total system memory now matches the value reported in task manager
  • Fix connections to (IpOverUsb) after displaying driver mistmatch warning
  • GPU Capture Improvements:
    • Support for filtering items in the D3D State tab
    • New warnings when viewing undersampled High Frequency Counters
    • Fix Map when ppData==nullptr
    • Fix issues with Shader Access Tracking on shaders that attempt out of bounds access
    • Fix miscellaneous issues with captures that use WriteToSubresource
    • Fix analysis for apps using EnableExprimentalFeatures
    • Fix intermittent failures launching Windows Packaged Apps for GPU capture
    • Improve Occupancy accuracy for large captures and systems with multiple nvidia GPUs
    • Fix the parameter ‘D3D12_CLEAR_FLAG_DEPTH | D3D12_CLEAR_FLAG_STENCIL’ being erroneously reported as ‘D3D12_CLEAR_FLAG_MASK’
    • ID3D12CommandQueue::Wait() now appears in the event list
    • Updated Pipeline Stats counter descriptions
    • Fix missing High Frequncy Counter data from captures using bundles
    • Wireframe visualizer performance improvements
    • Support for viewing before & after resources specified on an aliasing barrier
    • Fix reported dimensions for textures with a non zero MIP level
    • Texture viewer no longer defaults to a visualizer incompatible with the current texture
    • Global Root Signature Resources no longer show up as unbound in the pipeline/state tabs
    • Resource History support for Variable Shading Rate Images, resources in ResolveSubresource & CopyResource, and MetaCommand GPUVA Parameters
    • Fix missing shader debugging parameters UI
    • Autocomplete for Watch Variables in Shader Debugging
    • Improve the shader commands tab
    • Shader Debugging for Global ID 0
    • Resource History support for DXR Shader Tables & TLAS build instance description buffers
    • Improve the pipeline tab for DispatchRay event Shader Records
    • Improve root constant and desrcipter range viewers for DXR Shaders
    • TLAS build instance description buffers now appear in the pipeline view
    • Fix crashes when using the Acceleration Structure Visualizer to view TLASs with NULL instance descriptions
    • Automatic refresh for Shader Records when switching between different DispatchRays() events
    • Error messages for API calls not supported by the playback device
    • Overall error message improvements
  • New Timing Capture Improvements:
    • Updates reported timing capture state after target app terminates
    • Allows resaving a new capture file
    • Fixes issues in WinPixEventRuntime with string termination
    • Fixes issue capturing ML workloads with empty VirtualAddressInfos
    • Reports missing callstack
    • Support for zooming in the timeline to counter points and GPU events
    • Fix issue closing captures before symbol loading completed
  • Legacy Timing Capture Improvements:
    • Increases minimum immediate capture time to 50ms
    • Fixes layout issues in timing capture control tab

We’re Listening!

  • Please do send any feedback, bug reports or questions to askwinpix at microsoft.com
  • See Support page for other ways to contact us


Discussion is closed.

Feedback usabilla icon