PIX 1711.28 – GPU memory usage, TDR debugging, DXIL shader debugging, and child process GPU capture

Shawn Hargreaves

Today we released PIX_1711.28.  New in this release:

  • Timing captures now track GPU memory usage, and PIX can show how heaps and resources are created and managed with respect to the underlying GPU memory. This can be used to understand and optimize heap residency and troubleshoot performance issues caused by paging between local and non-local GPU memory.
    • More details about this feature here.
    • Note that PIX currently only tracks memory used by D3D12 heaps.  Other types of GPU allocation (such as command allocators, pipeline state objects, and descriptor heaps) are on our backlog for a future release.
  • Experimental TDR debugging feature allows frames that cause a TDR to be captured, analyzed, and debugged using PIX GPU captures.
    • More details here.
    • Note that in order to take a GPU capture for debugging a TDR, you must be able to reproduce the TDR while a GPU capture is in progress. If the TDR is caused by a race condition or other rare, hard to repro problem, it may not be possible to capture it using PIX.
    • Due to incompatibilities with current drivers, before using PIX to debug a TDR we recommend opening Settings and:
      • Unchecking Enable GPU Plugins
      • Checking Disable PIX HUD in applications running under GPU capture
    • We would greatly appreciate feedback on your experiences using this feature!
  • PIX now supports full shader debugging for DXIL (shader model 6.0).
    • The only PIX feature still not enabled when using DXIL shaders is access tracking for bindless resources, which will be coming in a future update.
  • Child process GPU capture allows launching one process from PIX, which launches another, then taking a GPU capture from the child.  This enables use of PIX with games that start up via a separate launcher executable or batch file.
    • Note that PIX does not yet handle the case where both parent and child process render using D3D12 at the same time.
    • We do not yet support 32 bit launchers, such as the Steam client.
  • File IO captures now let you specify a mapping file that describes the location and size of individual assets within archive files (such as ZIP or PAK files). PIX uses your mapping data to identify the individual asset for all reads within archives.
  • The Pipeline UI and access tracking for bindless resources are now much faster.
  • Tweaked behavior of the Pipeline UI to show all bound resources that are not part of large ranges, rather than only the ones that were accessed.  The filtering that skips showing unused resources now only applies when a title is actually using bindless.
  • PC Connection Details and GPU capture File Details now display correct adapter information when PIX is run on a system with multiple GPUs.
  • Bugfixes.




Discussion is closed.

Feedback usabilla icon