Radeon™ Raytracing Analyzer 1.7 adds user marker support for ray dispatches

Originally posted:
David DiGioia's avatar
David DiGioia

The latest version of Radeon™ Raytracing Analyzer (RRA) is now available for download!

User markers

Since RRA 1.3 it has been possible to capture ray dispatch data from DirectX®12 and Vulkan applications. With RRA 1.7 it is possible to associate each dispatch with a user-defined string called a user marker.

They are meant to label sections of a frame’s rendering work to make it easier for developers to debug their applications with developer tools. User marker strings are pushed to a stack during command buffer recording, then when a ray tracing dispatch is recorded it will be associated with the current stack of user marker strings.

Required driver

Required Radeon™ Developer Panel (RDP) features

  • Currently you must enable both Raytracing and Profiling features before capturing the scene in Radeon Developer Panel (RDP) in order for user markers to be captured, as shown:

RDP capture settings

The RRA interface

In RRA, the user marker shows up in the Overview pane’s dispatch list as well as in the Ray pane’s dispatch tab.

  • Dispatch names will be shown below the dispatch API call. Each string pushed to the stack is separated by a forward slash, and in the overview pane the most recent string pushed to the stack is shown on a new line, shown below:

RRA dispatch list

  • The Ray pane shows the user marker associated with the dispatch under the dispatch dropdown:

RRA dispatches

DirectX12 user markers

See the DirectX12 User Markers section in the RGP User Debug Markers documentation, which provides a comprehensive description of adding user markers to your application.

Vulkan user markers

See the Vulkan User Markers section in the RGP User Debug Markers documentation for some examples.

For the Vulkan example shown in the screenshots provided here, the order of commands would look like the following:

VkDebugUtilsLabelEXT label {
.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
.pLabelName = "Frame 2854 Graphics CB",
.color = {0.0f, 0.0f, 0.0f, 1.0},
}
vkCmdBeginDebugUtilsLabelEXT(cmd, &label);
// Other commands recorded here.
label.pLabelName = "Vk_Renderer::draw";
vkCmdBeginDebugUtilsLabelEXT(cmd, &label);
// Other commands recorded here.
label.pLabelName = "Vk_Renderer::draw::Raytracing";
vkCmdBeginDebugUtilsLabelEXT(cmd, &label);
vkCmdTraceRaysKHR(cmd, &ray_table, &miss_table, &hit_table, &callable_table, 1920, 1080, 1);
vkCmdEndDebugUtilsLabelEXT(cmd);
vkCmdEndDebugUtilsLabelEXT(cmd);
vkCmdEndDebugUtilsLabelEXT(cmd);

Get the Radeon Developer Tool Suite today!

You can find out more about RRA, including links to the release binaries on GitHub and the full release notes list, on our product page.

Your feedback is incredibly valuable to us and helps drive the RRA roadmap forward, so if you want something and it makes sense then just let us know!

David DiGioia's avatar

David DiGioia

David DiGioia is a member of AMD's GPU Tools team and is currently a software engineer for the Radeon™ Raytracing Analyzer. Outside of work, he develops game engines, contributes to open source, and makes educational content.

Related news and technical articles

Related videos