PIX 1911.27 – New Buffer Formatter and Capture from Launch

Damyan Pepper

Today we released PIX 1911.27 which can be downloaded here.  This release contains an updated buffer formatter, the ability to start capturing of a process from initial launch, support for Windows 10 Insider Preview Builds (20H1) and many bug fixes.

Buffer Formatter

This release of PIX includes several enhancements to the Buffer Formatter aimed at helping you define and save custom formats and easily switch between them.  The updated buffer formatter editor includes syntax highlighting and an undo stack for a better editing experience.

Once a custom formatter is saved, it will be available to use in all new PIX sessions for any selected buffer.  Selecting a custom formatter will update the viewer as expected.

Capturing a process from launch

PIX can now capture any application work performed in a Win32 process from its initial launch.  This is done by instructing PIX to launch your application suspended.

Pressing the GPU Capture button or any of the Timing Capture buttons will automatically resume the application and start capturing immediately.

The functionality can be accessed from pixtool using the “–captureFromStart” option on the “launch” command.

This feature is useful if you want to capture the work leading up to and including the first rendered frame.  This is also great for WinML or DirectML applications that perform operations once on process launch.

Updated support for Windows 10 Insider Preview Builds (20H1)

PIX has been updated to work with Windows 10 Insider Preview Builds (20H1) of Windows.  Watch this space for more information on PIX support for upcoming DirectX 12 rendering features.

Known Issues

Due to a change in DXCompiler’s debug information, PIX will not report HLSL variables for any DXIL shader compiled with versions of DXCompiler that were built from github source as of November 13th, 2019. This includes DXIL shaders built by PIX as part of Shader Edit and Continue. Please see the known issues page for more details.

Change List

General

  • Added support for new 20H1 ETW records for GPU timing data
  • Added support for launching Win32 processes suspected
  • Show “(Administrator)” in PIX UI title bar if it’s running elevated
  • Allow app launch to continue if we fail to get its process description

GPU Captures

  • Added new buffer formatter
  • Make root constants show value interpreted as float, decimal and hexadecimal
  • Make event list show Resource/Offset for Set*Root*View()’s GPUVA param instead of <unknown>
  • Make PIX treat nullptr in IASetVertex/IndexBuffer as an “unsetting” operation
  • Make warnings view show ‘Missing VBV’ warning from Debug Layers
  • Improved pipeline view population speed by treating static indexing into array just like dynamic indexing
  • Added basic support for CreateCommittedResource1, CreateHeap1 and CreateReservedResource1
  • Increased timeout of tooltip for event name in the event list
  • High Frequency Counters: re-enable collect of multiple counters simultaneously on Intel
  • Turned off state view of RTs 1 through 7 when independent blend is turned off.
  • Warn user if shader is optimized and no autos variables show up
  • Ingest new AMD plugin (RX5700 Occupancy improvements)
  • Fixed rare crash during Start Analysis
  • Fixed for random failures to create PSO from user-defined streams that don’t use d3dx12
  • Fixed various issues for debugging DXIL shaders
  • Added ‘Refresh All’ command to event list column headers
  • Check that Group Policy developer mode key is present (even if disabled), to prevent crash inside D3D12
  • Mask off D3D12_HEAP_FLAG_CREATE_NOT_ZEROED flags for CreateCommittedResource1,2 and correctly handle residency when D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT is used
  • Fixed PIX to not fail capturing apps that use DRED apis.
  • Fixed shader edit and continue relative include path comparisons
  • Fixed PIX engine crash due to invalid/missing timing data being reported
  • Fixed UI hang during adapter selection if user has connection page open that failed to connect
  • Fixed GPU Counter collection if PIX marker is open around Present()

Timing Captures

  • Display top-level PIX events by default in Metrics panel
  • Adjusted ETW buffer settings to avoid lost events
  • Added Monitor VSync Lanes to LRTC
  • Improved capture open perf for large captures
  • Vsync lanes now show the adapter name
  • Improved time display

3 comments

Discussion is closed. Login to edit/delete existing comments.

  • Gustavo 0

    Thanks, we would test it over windows 10.

    Desarrollo de Sistemas

  • frederic macre 0

    Great release! I’m not sure it’s the good place to ask but i try, do you know if it’s possible to change Gpu Pipeline->Events nanoseconds measurement for milliseconds?

    Thanks

    • Damyan PepperMicrosoft employee 0

      There’s no option to do this currently. I’ll make a note of the request.

      You can connect with other PIX users, and the development team, on our discord: https://discordapp.com/invite/jkP67YF.

Feedback usabilla icon