Shader Explorer

Use Shader Explorer to understand how your HLSL compiles for a GPU architecture and to investigate shader performance. You can edit shaders, compilation args, and pipeline state to compare the results across revisions.

Static shader profiling

Static profiling analyzes compiled shaders without running them on the GPU. It shows compiler-generated information such as GPU assembly (ISA), ISA-to-HLSL mappings, instruction dependencies, register pressure, and register lifetimes. Use it to inspect generated code before measuring a change on your workload.

With a supported GPU, you can also collect live profiling data during frame replay. Live data adds runtime measurements to the static analysis.

For more details on static shader profiling, see Shader Profiling in Shader Explorer.

Currently supported GPU vendors

  • AMD
  • Intel

Live shader profiling

Live profiling begins with a shader pipeline in a GPU capture. The pipeline can be profiled during a frame replay and the results exported to Shader Explorer to enhance the statically gathered profiling information. Live profiling data includes runtime-measured information such as instruction costs, stalls, and more.

For more details on live shader profiling, see Shader profiling in GPU captures.

Currently supported GPU vendors

  • AMD
  • Intel

PIX API

All shader profiling functionality and data used by the PIX UI is also available via the PIX API.

To get this data programmatically, call IPixFactory::OpenShaderProfilingDocument for static shader profiling. For live shader profiling, call IPixGpuCaptureAnalysis::GetShaderProfiling, and then IPixShaderProfilingLive::ProfilePipeline.