PIX 1705.16 – AMD GPU counters, preliminary DXIL support, and more warnings

Shawn Hargreaves

Today we released PIX 1705.16 beta.  New in this release:

  • AMD GPU counters
  • Preliminary support for DXIL (shader model 6)
  • More D3D12 usage warnings
  • Fixed problem capturing titles that use large numbers of resource heaps
  • HLSL syntax highlighting


AMD GPU Counters

We are delighted to announce a partnership with AMD to enable a rich set of hardware performance counters inside PIX.  When running on an AMD GPU with the latest driver (17.5.1) you will see ~90 newly available counters that can be added to the PIX event list.  Information such as hardware utilization and bottlenecks can help PIX users better optimize their titles to make efficient use of AMD hardware.


Many thanks to our partners at AMD for making this possible!

Note that not all counter values are currently rolled up from individual draw calls to their parent marker regions.  We will be improving this in future releases.



PIX can now capture and perform basic analysis on titles that use DirectX Intermediate Language (DXIL) shaders, as generated by the open source HLSL shader model 6 compiler.

The following PIX features are not yet compatible with DXIL shaders:

  • Shader debugging
  • Rendertarget visualizers
  • Dr. PIX
  • Automatic formatting of constant buffer data to match how the shader interprets it



This release introduces some new D3D12 usage warnings:

  • Unnecessary UAV barriers
  • Redundant root state updates
  • “all_resources_bound” compiler switch recommendations
  • High ExecuteIndirect MaxCommandCount values
  • Small command lists executed
  • High number of ID3D12Fence::GetCompletedValue() calls

It also moves some warnings out from behind the Collect Experimental Warnings button.  These are now collected automatically when you open a GPU capture:

  • Back-to-back ExecuteCommandLists calls
  • Consecutive calls to ResourceBarrier
  • High ExecuteIndirect MaxCommandCount values
  • High number of ID3D12Fence::GetCompletedValue() calls
  • Command allocator usage warnings
  • ResolveQueryData usage recommendations
  • Small command lists executed


Discussion is closed.

Feedback usabilla icon