Home » Blogs » RGP 1.15

Radeon™ GPU Profiler 1.15 provides an enhanced ISA view experience and more

Chris Hesik
Chris Hesik

Chris Hesik is the Radeon™ GPU Profiler technical lead for the Developer Tools Group at AMD. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.

link to RGP 1.15

Last month at GDC 2023, we introduced some additional features in Radeon™ GPU Profiler (RGP). A pre-recorded version of the full presentation is available online.

RGP 1.15, which includes these features (and others), is now available for download!

New! Enhanced user experience when viewing and interacting with GPU ISA disassembly

At the 12:32 mark in the above video, we introduced the enhanced ISA view that has been integrated into RGP’s Pipeline state and Instruction timing views. Since GDC, things have continued to evolve with this view, and we are eager to have you try out the current version of this user interface.

Here is a look at the enhanced ISA view in the Instruction timing pane:

Instruction timing pane view

And here it is in the Pipeline state pane:

Pipeline state pane ISA view

In addition to providing a common look and feel for the ISA views in the Pipeline state and Instruction timing views, we have also implemented several enhancements over previous versions.

First, individual blocks within the disassembled ISA can now be collapsed and expanded:

Collapsed blocks in the ISA view

To expand or collapse a single block, click on the arrow on the left side of the instruction line. To expand or collapse all blocks in a shader at once, use the Ctrl + Right or Ctrl + Left shortcut, respectively.

We have also implemented a feature that is available in many text editors: the automatic highlighting of identical tokens. With this feature, you can simply click on a text token in the ISA view and it will automatically highlight other instances of the same token. This works for instruction opcodes, registers, and constants.

In the below screenshot the user has clicked on the s0 scalar register. Note how the view has highlighted all instances of that register. Note, too, that in the case of registers, any register range that includes the selected register will also be highlighted. This can be seen in the lines where s[0:1] is also highlighted.

Highlighted tokens in the ISA view

Two-way navigation within a shader between branch instructions and the targets of those branches is now also supported. When the target of a branch is clicked, the ISA view will be automatically scrolled to show the block identified by that label. Similarly, when a block label is clicked, the ISA view will be automatically scrolled to show the branch instruction that branched to the block. In cases where more than one branch instruction references the same block, clicking the block label will display a menu allowing the user to select which branch instruction to show. This two-way navigation also maintains a history of branches and block labels that the user has navigated to. There are navigation history controls available to quickly traverse through the navigation history (or to jump to a specific item in the history). In the screenshot below, you can see that the branch instruction targets and the block labels are displayed as hyperlinks as an indicator that they can be clicked on to navigate. You can also see the navigation history controls in the upper right corner above the ISA display (these are the left and right arrows with the menu in the middle).

Branch navigation in the ISA view

The enhanced ISA views also allow for improved user customization. You can choose which columns are displayed using the Viewing Options dropdown. Columns can also be reordered by dragging column headers to a new location.

Column customization in the ISA view

New! Mesh shader event names

Although the largest feature addition in this release is the enhanced ISA view, there are also some other smaller improvements that are worth mentioning.

RGP will now display the proper name of any Mesh Shader events. In previous versions, these events were labeled as Unknown. Below are two screenshots of RGP’s event lists showing the DispatchMesh (DirectX®12) and vkCmdDrawMeshTasksEXT (Vulkan®) event names.

DirectX®12 DispatchMesh event Vulkan® vkCmdDrawMeshTasksEXT event

New! Support for WMMA instructions

One of the new hardware features on AMD RDNA™ 3 architecture-based Radeon™ RX 7000 Series GPUs is the support for wave matrix multiply accumulate (or WMMA) instructions. These instructions are useful for certain matrix math operations that are used in machine learning or artificial intelligence workloads. In this version of RGP, the Instruction timing feature set supports WMMA instructions. In addition to showing the Hit count, Instruction cost, and Latency for these instructions, the Details panel contains an extra row in the Instruction Hit Count table to report the total number of WMMA instructions executed by the current shader.

More information on WMMA instructions can be found in this excellent GPUOpen blog post.

WMMA Instructions

New! Support for displaying the Conservative Rasterization mode

We have added support for showing whether or not Conservative Rasterization is enabled for any given Draw event. In the Pipeline state pane, this appears on the RS stage (for a DirectX®12 profile) and the Rasterizer stage (for a Vulkan® profile), indicating which conservative rasterization mode is used for the selected Draw event. Here is what it looks like for a DirectX®12 profile (highlighted by the green outline):

Conservative Rasterization setting

And more!

In addition to the features outlined above, there have been plenty of bug fixes and other smaller enhancements in RGP 1.15, including:

  • Support for additional RDNA™ 3 GPUs

  • Improved performance in the System activity timeline in the Frame summary pane when opening large profiles (especially large HIP and OpenCL™ profiles)

  • Improved keyboard selection when navigating in the tree view in the Event timing and Pipeline state panes.

Please visit the RGP product page on GPUOpen and download the latest version to check it out.

Chris Hesik
Chris Hesik

Chris Hesik is the Radeon™ GPU Profiler technical lead for the Developer Tools Group at AMD. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.

Enjoy this blog post? If you found it useful, why not share it with other game developers?

You may also like...

Getting started: AMD GPUOpen software

New or fairly new to AMD’s tools, libraries, and effects? This is the best place to get started on GPUOpen!

AMD GPUOpen Getting Started Development and Performance

Looking for tips on getting started with developing and/or optimizing your game, whether on AMD hardware or generally? We’ve got you covered!

GPUOpen Manuals

Don’t miss our manual documentation! And if slide decks are what you’re after, you’ll find 100+ of our finest presentations here.

AMD GPUOpen Technical blogs

Browse our technical blogs, and find valuable advice on developing with AMD hardware, ray tracing, Vulkan®, DirectX®, Unreal Engine, and lots more.

AMD GPUOpen videos

Words not enough? How about pictures? How about moving pictures? We have some amazing videos to share with you!

AMD GPUOpen Performance Guides

The home of great performance and optimization advice for AMD RDNA™ 2 GPUs, AMD Ryzen™ CPUs, and so much more.

AMD GPUOpen software blogs

Our handy software release blogs will help you make good use of our tools, SDKs, and effects, as well as sharing the latest features with new releases.

AMD GPUOpen publications

Discover our published publications.