Intel® Graphics Performance Analyzers Framework: Dump State Layer

Use the Dump State Layer to inspect the states associated with individual draw or dispatch calls. These commands generate:

  • State files with a call index
  • Arguments to a draw call
  • Command list ID
  • Root signatures
  • Root parameters
  • Depth stencil information
  • Vertex buffers
  • Graphics pipeline state
  • Shader files in intermediate shader representation

Hello folks.

Welcome back to our Intel® Graphics Performance Analyzers video series, Intel® GPA Framework Quick Tips.

I am Pamela Harrison, software technical consulting engineer for the Intel team.

I am back with more insights for how to use Intel GPA Framework to help with your profiling workflow.

In this video, we will review how you can dump, draw, and dispatch call data using the Dump State Layer that was brand new with Intel GPA release 2023.2.

There is a separate layer, the Dump Resources Layer that you can use in conjunction with the Dump State Layer to trace the precise execution of your resources of interest.

The Dump Resources Layer is beyond the scope of this presentation.

We have implemented this GPA Framework Dump State Layer to allow you to inspect the states associated with individual draw or dispatch calls in either a single frame or multiple frames.

You can use this layer either while capturing a new stream or on a previously captured stream.

However, note that the call count will be based on the API call list, which is dependent on GPU execution order.

If you use this layer during capture, call count order is not yet determined.

Thus, the call order may be slightly different in the Dump State Layer from the actual order of execution, whereas if you use this layer on a stream that was previously captured, call numbering will be precisely the same as call execution order.

If you choose to use this layer during the capture of frames, you will invoke the GPA Injector Command with a Dump State Layer.

Listing the frames and the calls you are interested in reviewing.

If you want to use the Dump State Layer on a previously captured stream, use GPA Player instead of GPA Injector.

I have invoked Dump State Layer here while capturing a stream.

I am requesting the dump of data from draw calls 14 to 17 of each frame.

If there are at least 17 draw calls in each frame, I will get data for each of those draw calls, plus data from the dispatch call.

The data is output to several files, state files and shader files.

If you output dispatches with compute shaders, you will get one state file per dispatch, as well as a compute shader file.

Additionally, there will be one state file for each draw call and likely at least one shader file for each draw call.

There can be many shader files per draw call, vertex, pixel, hull, geometry, and domain shader files.

The default location for these files is the GPA folder.

As you can see, the files are named appropriately so that you can more easily find what you are looking for.

We plan to add support for DXR calls in a future release.

Note that requesting state dump for a lot of calls can affect stream playback performance due to overhead caused by file writes.

That's all for now.

Thanks for watching.

Try out the Dump State Layer and tune in for our next quick tip for more insights on profiling with Intel GPA Framework.