Hi, and welcome to the 2023.2
release of Intel Graphics Performance Analyzers.
I am Pamela Harrison with the Graphics Performance Analyzers team here at Intel.
In this release, we have two major features on the GUI
side and three major features in the backend.
For Graphics Frame Analyzer,
we have added Stream Compression, allowing you to save disk space.
And we have added a new dedicated Frame Capture Mode
that supports all the latest DirectX12 features.
For GPA Framework, our command line interface, besides adding
support for the latest Vulkan SDK 1.3.243
we have significantly improved cross GPU capture and playback functionality.
We have implemented Auto-hooking controls so that you can specify
which process of your application you want to attach to.
And we have added a Dump State Layer that allows you
to view states of individual draw or dispatch calls.
For our first Graphics Frame Analyzer highlight.
We have
Stream Compression.
Stream Compression allows dynamic compression
of stream content while recording to reduce the size
of the recorded data allowing you to save disk space.
Be aware that in some cases compression during capture may reduce application
frame rate so that smaller stream size may be due in part to fewer frames captured.
To invoke compression, click the options button, then in either
the stream or the frame tab, toggle the compression option to the on position.
This is available for DX12 and Vulkan for streams
and DX12 for single frame capture.
For our second Graphics Frame Analyzer highlight, we show the new
Frame Capture Mode, Frame DX12.
This mode enables you
to capture single frames with better support for the latest DirectX
12 Ultimate features like raytracing and mesh shading.
If you attempt to use this mode with a DX11 app,
there's a HUD warning that the wrong mode was chosen.
Otherwise you will encounter normal capture behavior.
You should note
that some features are not yet available in this frame mode.
For these features such as pixel history.
you will need to use Stream Mode and select your frame of choice
from the stream.
Now for GPA Framework highlights.
The first GPA framework highlight is our new Auto-hooking feature.
Several games have multiple processes or multiple windows.
Sometimes the main part of the game is not the first process,
so you want to be able to attach to the process of your choice.
With the Auto-hooking feature, you can choose which process to hook to.
To enable Auto-hook use the -a option then attach to the nth
the process with either --attach condition or -C.
You can see here the command to attach to the second process.
For attaching
with the regular expression use -C with a regular expression as shown.
One other important option for this Auto-hooking
feature is the flavors feature.
The three flavors are snapshot, Strict and Busy
and can be used individually or in combination.
Busy is perhaps the most useful of the flavors.
It would be used with applications that start so quickly
that GPA might not be able to attach fast enough.
So-F busy causes GPA to implement busy waits on the threads
so that we have time to attach to the appropriate process as it begins.
For our second GPA Framework highlight, we have Cross GPU playback.
This can be extremely helpful to be able to capture a portion of gameplay
on one platform and play it back on various other platforms
that may have different GPUs and different drivers.
For example, an artist could capture a stream on their platform
and send that capture to an engineer for profiling analysis.
When a stream is recorded on one platform and played back on a different platform,
there are several things that can change, two are crucial, requirements
for size of textures and requirements for size of acceleration structures.
So in many cases, the memory layout needs to be changed.
We have
implemented d3d 12 cross GPUs suboptimal layer,
which addresses those two issues reallocating memory as needed.
It allows proper playback but is named suboptimal
because it is not yet as fully featured as we would like it to be.
We also added improvements to the raytracing acceleration
structure restoration for deferred streams and sub-captures.
This new approach allows successful restoration of acceleration
structures in a platform agnostic way.
Let's take a look.
We see a failed playback of d3d12
raytracing sample stream that was captured on a different platform.
The memory requirements for acceleration structures and placed resources
can change across the platforms, causing playback failures.
Here, the same stream runs fine with the user specified suboptimal
cross-platform layer, which modifies the stream API
calls to compensate for different memory requirements.
As another example, we
see an attempt to play a deferred stream from the same sample.
Deferred streams include restoration data for all the objects,
including acceleration structures.
In this case, the acceleration structure data recorded in the stream
is driver and platform specific, which prevents the successful playback.
And here the stream was captured with the new version of GPA Framework.
Acceleration structures are restored using a platform agnostic path.
For a final highlight, we have the new GPA
Framework Dump State Layer that allows 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 or on a previously
captured stream.
It will count calls based on GPU execution order.
To use it during capture, identify the frames
you are interested in and the calls you are interested in.
The results will be stored as several files per call.
In this case, you will be storing information from three frames
with up to nine draw calls per frame, generating up to 27 sets of files.
The state file for each call contains the state information, call index, the
arguments of the draw call, the command list, root signatures, parameters,
depth stencil information, Vertex buffers on the graphics pipeline state.
If there are shaders, they are dumped to separate files with intermediate
shader representation.
If you output dispatches with compute shaders,
you will get state files with the root signature, arguments to the call,
command list and compute pipeline state, as well as compute shader files.
In the future we will also output dispatch trace calls.
This concludes the highlights for release 2023.2.
Try out these features and more with our free
downloads of Intel GPA and Intel GPA Framework.
For the full list of updates and changes for both Intel GPA and Intel
GPA Framework, take a look at our release notes.
Thank you for watching.
For more information about the Intel GPA 2023.2 release
and to download Intel GPA for free, see the links.
Remember to like this video and subscribe to the Intel software
YouTube channel for more Intel GPA news and updates.