The Radeon™ Raytracing Analyzer (RRA)

The Radeon Raytracing Analyzer is a tool designed to help developers improve the raytracing performance on AMD Radeon 6000 series GPU’s. The tool focuses on the visualization of Acceleration Structures, which in our case consist of Bounding Volume Hierarchies. RRA allows the developer to visualize the bounding box hierarchies, and related scene geometries, to quickly identify issues with the bounding volume hierarchies, such as overlaping bounding volumes and sparse geometry layout within bounding volumes. Once identified, the developer can revisit their BVH generation strategy.

This document describes how the Radeon Raytracing Analyzer can be used to examine a bounding volume hierarchy.

Supported graphics APIs, RDNA hardware, and operating systems

Supported APIs

  • DirectX 12

  • Vulkan

Supported RDNA hardware

  • AMD Radeon RX 6000 series

Supported Operating Systems

  • Windows® 10

  • Windows® 11

  • Ubuntu 20.04 LTS (Vulkan only)

  • Ubuntu 22.04 LTS (Vulkan only)

Radeon Raytracing Analyzer - Quick Start

How to generate a BVH trace

The first thing you will need to do is generate a BVH trace. Currently, this is done via the Radeon Developer Panel. Please read the documentation provided with this distribution for information on how to create a BVH trace. This can be obtained from within the Radeon Developer Panel or from the link on the Radeon Raytracing Analyzer “Welcome” view.

Starting the Radeon Raytracing Analyzer

Start RadeonRaytracingAnalyzer.exe (this is the tool used to view BVH trace data).

How to load a trace

There are a few ways to load a trace into RRA.

  1. Use the “File/Open trace” pull down menu, or the “File/Recent trace” pull down menu item.

  2. Go to the “Welcome” view and click on the “Open a Radeon Raytracing Analyzer file…”

  3. Go to the “Welcome” view and click on a trace that you have previously loaded in the Recent list.

_images/welcome_1.png
  1. Go to the Recent traces view to see a full list of all your recent traces.

Notice that there is additional information provided for each trace when viewed in this pane, such as the date when the trace was last accessed. It is also possible to remove recent traces from the list using the “Remove from list” link button. Note that they will only be removed from the list; they won’t be deleted from the file system. There is also a link button, “Open file location” to open the folder where that trace file is on the disk.

_images/recent_traces_1.png
  1. Drag and drop a BVH trace file onto the Radeon Raytracing Analyzer executable, or onto an already open RRA instance.

The Radeon Raytracing Analyzer user interface

There are four main menus in the Radeon Raytracing Analyzer and each may have a number of sub-windows..

  1. START

    1. Welcome - Shows links to help documentation, and a list of recently opened traces.

    2. Recent traces - Displays a list of the recently opened traces.

    3. About - Shows build information about RRA and useful links.

  2. OVERVIEW

    1. Summary - Gives an overview of the trace, showing the number of acceleration structures, the resources they use and their memory usage.

    2. Device configuration - Provides details of the GPU used to record the trace.

  3. TLAS

    1. Viewer - The main viewer for a top-level acceleration structure.

    2. Instances - Lists statistics for all instances referenced in the selected top-level acceleration structure.

    3. BLAS List - Lists statistics for all bottom-level acceleration structures referenced in the selected TLAS.

    4. Properties - Lists statistics and properties for the currently selected top-level acceleration structure.

  4. BLAS

    1. Viewer - The main viewer for a bottom-level acceleration structure.

    2. Instances - Lists statistics for all instances of the selected bottom-level acceleration structure.

    3. Triangles - Lists statistics for all triangles of the selected bottom-level acceleration structure.

    4. Properties - Lists statistics and properties for the currently selected bottom-level acceleration structure.

Settings

The settings tab is used to control global settings throughout the product. These settings are stored, and are persistent for all instances of RRA.

General

Check for updates If checked, the Radeon Raytracing Analyzer will alert you that a new version is available for download.

Camera reset If checked, the camera will reset to the starting position and orientation each time the camera’s control style is changed.

TLAS/BLAS Node display Will allow the choice between showing the nodes in the treeviews on the viewer panes either by their GPU address, or by an offset.

Maximum traversal count Is used to set the maximum value of the traversal counter slider. The value can be lowered in the case where the scene has low counter values which will increase the resolution of the slider, or raised in the case where the traversal count of the scene exceeds the default value.

Maximum camera movement speed Sets the maximum speed of the camera when navigating around the scene. The speed is altered using a slider on the viewer panes. The default maximum speed is optimal in most cases but for very large scenes, it may be useful to increase this value.

Frustum cull ratio Objects which take small amounts of screenspace are culled for efficiency. Lowering this ratio will allow further objects to be rendered at the cost of rendering time. The default value is sufficient for most needs.

Decimal precision The number of decimal places that floating point values throughout the app will be displayed at. Hovering the mouse over a floating point value will display its full precision through a tooltip.

_images/general_1.png

Themes and colors

The Radeon Raytracing Analyzer makes heavy use of coloring to display its information. This pane allows users to thoroughly customize those colors. These include being able to specify how to color geometry based on different attributes and showing node types using different colors.

The Bounding volume refers to the colors used to show the bounding volume wireframe when the “Volume type” BVH coloring mode is selected (coloring modes are described later).

The Wireframe coloring colors are used when displaying the wireframe between each triangle.

The Selected triangles is the color used in the BLAS view to show the currently selected triangle nodes. Note that the selected triangle color is only available in the geometry rendering mode.

The Background coloring refers to the 2 colors that are used to paint the viewer background. By default, it consists of a checkerboard. Making the 2 colors the same will result in a single solid color.

The Opacity coloring is used for the Opacity geometry coloring mode.

The Flag indication colors are the 2 colors used for the build flag geometry coloring modes, indicating if the build flag is enabled or disabled.

The Build type coloring Combines the FastBuild and FastTrace flags. These colors are used for the fast build/trace geometry coloring mode. Specifying both build flags is improper API usage, but coloring it allows the user to spot potential errors.

The Instance force opaque/no-opaque Combines the ForceOpaque and ForceNoOpaque flags. These colors are used for the opacity geometry coloring mode. Specifying both build flags is improper API usage, but coloring it allows the user to spot potential errors.

_images/themes_and_colors_1.png

Keyboard shortcuts

Here users will find the Keyboard shortcuts pane:

The Global navigation section refers to keystrokes that aid user navigation, and are always detected regardless of which pane is visible.

The Camera hotkeys shortcuts are specific to moving and panning operations that can be performed with the camera (see below).

The Render hotkeys shortcuts enable certain rendering operations to be toggled, such as wireframe rendering.

The Global hotkeys section refers to any hotkeys available anywhere in the product.

_images/keyboard_shortcuts_1.png

All users are encouraged to adopt these keystrokes while using RRA.

UI Navigation

In an effort to improve workflow, RRA supports keyboard shortcuts and back and forward history to quickly navigate throughout the UI.

Back and forward navigation

RRA tracks navigation history, which allows users to navigate back and forward between all of RRA’s panes. This is achieved using global navigation hotkeys shown above, or the back and forward buttons on all panes in the top left below the file menu.

Currently, back and forward navigation is restricted to pane switches.

The OVERVIEW windows

These panes show the overview of the trace and the system.

Summary

The summary pane presents a high-level view of the acceleration structures in a trace.

At the top, a small table will show the number of acceleration structures by type and if there are any acceleration structures that are empty or missing.

The Total Memory is the memory used for all the acceleration structures.

The TLAS List shows a list of all Top-level acceleration structures in the trace. It is split into several sections:

  • The left section shows a high level diagram of the TLAS, showing the number of instances and BLASes. Also shown is the memory used by the TLAS and the total memory used. The total here is the combined memory used by the TLAS and all the BLASes it references. TLASes can, and do, share BLASes so the totals for all the TLASes can sometimes be larger that the total memory displayed above.

  • The right section displays some useful statistics for each TLAS are shown so each can be easily identified.

_images/summary_1.png

Clicking on the TLAS name or address (text in blue) will navigate to the TLAS Viewer pane.

Device configuration

This pane will show some of the parameters of the video hardware on which the memory trace was taken, showing such things as the name of the video card and the memory bandwidth.

_images/device_config_1.png

The TLAS windows

These panes show information about a top-level acceleration structure and its associated bottom-level acceleration structures.

The TLAS Viewer

The top-level acceleration structure consists of a bounding volume hierarchy. Each bounding volume will consist of child bounding volumes or instances. An instance is simply a set of geometry inside a bounding volume. There can be multiple instances in a scene. Each instance corresponds to a BLAS structure, described below. The TLAS pane will therefore show a rendering of the complete scene inside the very top bounding volume. There can be multiple TLAS’s in a scene.

_images/tlas_viewer_1.png

The view is split into 3 sections:

The left section shows a summary of the currently selected TLAS:

  1. The TLAS dropdown allows selection of which TLAS to view.

  2. The Expand tree text is a toggle button and clicking it will expand the treeview so all items in the tree are visible. Pressing it again will collapse the treeview.

  3. The treeview will show the structure of the TLAS. In a TLAS, there are box nodes (either Box16 or Box32 for 16-bit or 32-bit floating point values, respectively). Each box node can contain up to 4 child nodes, which can be box nodes or instance nodes. Instance nodes are leaf nodes. An instance node is a bottom-level acceleration structure and will contain the geometry to render.

    1. Selecting a node will highlight the node and all its child nodes in the treeview. Any instance nodes selected will be shown selected in the scene as having a highlighted wireframe around the triangles. This wireframe coloring can be customized in the Settings Themes and colors pane.

    2. If a node has child nodes, it will have a ‘>’ to the left of it. Clicking this will open the node and show the child nodes. Typically all box nodes will have child nodes.

    3. Nodes can be shown/hidden using the checkbox for that node, located to the left of the node name. Any hidden nodes will be grayed out in the treeview and will not be rendered in the scene. This allows the user to just see the geometry of interest.

    4. Double-clicking on an instance node will navigate to the BLAS pane and select it.

  4. The section below the treeview gives details about the currently selected node, including the parent node and extents. Clicking the parent address will select the parent node.

  5. If the selected node is an instance then instance specific information passed to the API will be displayed, including the instance transform, instance mask, flags, and the BLAS address. Clicking the BLAS address will navigate to that BLAS in the BLAS tab. The position of the instance can be found in the last column of the instance transform, separated by a vertical bar.

The left-pane can be resized by moving the mouse over the area of the screen where the left pane and view pane meet. The cursor will change, showing the pane can be resized by clicking and dragging the mouse.

The center section shows a rendering of the scene:

In the center is a rendering of the scene. The scene will consist of a series of bounding volumes with geometry contained within that volume. Various display modes can be altered by the user to change how the scene is rendered.

The camera used to view the scene can be manipulated using a mouse and keyboard using a preset control style (described later).

It is sometimes easy to get disoriented in a scene or the whole scene is behind the camera or if the camera is zoomed out so far that the scene disappears. In this case, pressing the “R” key in all camera modes will reset the camera to its default position.

It is possible to select an Instance within the scene by clicking on any mesh within the viewport. The TLAS hierarchy tree view will expand as necessary to focus on the selected Instance. Pressing the “F” key will focus the camera on the selected object in the scene.

An orientation ‘gizmo’ is overlaid on the scene, in the top-right corner. This shows how the coordinate axes are aligned with the scene.

A context menu can be displayed by right-clicking on the scene.

_images/context_menu_1.png

The list of options are:

  1. Add instance under mouse to selection - Select the instance under the mouse. It is possible to have more than one instance selected so that instances can be grouped. One possible use-case is to select the instances that are of interest and hide everything else in the scene.

  2. Deselect all - Deselect any instances that are selected.

  3. Focus on selection - Focus the camera to look at the selected instances. If more than one instance is selected, the camera will pan back to show all selected instances. Pressing the “F” key will accomplish the same thing.

  4. Hide selected - Hide any selected instances in the scene. Pressing the “H” key will accomplish the same thing. By using the mouse to select instances and the “H” key to hide them, the scene can be quickly cleared of instances that are not relevant or obscuring areas of interest.

  5. Select all visible - Select all visible instances in the scene.

  6. Show everything - Make everything in the scene visible. Pressing the “J” key will accomplish the same thing.

  7. Show only selection - Show only instances that are currently selected; all other instances will be hidden.

Below the scene is a segmented bar:

_images/depth_slider.png

This tree depth slider is used to select which tree depths to show bounding volumes for. The default has the first segment selected, indicating that only the highest level bounding volume is to be shown.

To use the slider, click on a segment. Holding the mouse button and dragging will allow selection of the depth range.

The minimum and maximum tree depths selected are also shown at either side of the slider. In this case here, just tree level 0 (the root) is shown, so the range is from 0 to 0.

The right section allows control over the rendering and camera:

On the right is a ‘Show/hide controls’ button. It can be clicked on and will open a side panel to the right of the rendering. This opens the view controls pane:

_images/popout_view_1.png

Rendering controls

The Rendering controls section includes checkboxes to control how the scene is rendered.

The Rendering modes combo-box allows selection of the rendering mode. The default is the Geometry rendering mode, showing the triangles which make up the scene. An example of this rendering mode can be seen at the beginning of this section.

The Traversal counter mode is a display mode that counts ray interections with elements from within the acceleration structure. Examples would include triangle/box hit and test counts. See the section below for more information on the Traversal counters.

In geometry rendering mode, there are 4 checkboxes that control what is visible in the scene:

  • Show geometry will only draw the scene if enabled. Switching it off will allow the bounding volumes or wireframes to be seen more easily.

  • Show axis aligned BVH will display the bounding volumes overlaid as wireframes if enabled. This bounding volume will be axis aligned in the TLAS.

  • Show instance transform will display the instance bounding volume overlaid as a dashed wireframe. This bounding volume has the instance transform applied, so is effectively in BLAS-space.

  • Show wireframe will show a wireframe overlay over the geometry, which will allow the individual triangles to be seen.

Finally, a Culling mode combo box is available. In geometry rendering mode, this is the standard frontface/backface/none culling mode which only affects the viewport and does not reflect the state of your application when it was captured.

In traversal counter rendering mode, the controls are slightly different, as seen below:

_images/popout_view_3.png
  • The Counter range slider allows the user to set a minimum and maximum count limit. The results of changing the slider values can be seen instantly in the scene.

    • The Counter range slider has a range between 0 and 1000 but the limit can be changed in the General section of the settings under Maximum traversal count.

    • The values under the slider are the current minimum and maximum values of the 2 slider handles.

  • Clicking on the Wand icon will automatically adjust the slider values to provide the optimum range.

  • The Continuous update checkbox, when enabled, will automatically adjust the counter range slider as the scene is moved around. It saves the work of clicking on the wand icon to optimize the color range of the scene. NOTE: When Continuous update is enabled, the wand icon is disabled.

The Show axis aligned BVH, Show instance transform, and Show wireframe checkboxes are also present, along with the culling mode combo box. But in traversal counter rendering mode, the selected culling mode plays the part of the frontface/backface triangle culling flags passed to the trace ray call in the shader. This means that the culling behavior can be overridden or modified for each instance via instance flags.

Camera controls

The Camera controls section allows selection of the camera controls.

  • A combo box allows selection of the camera control style. This can be either CAD control style or FPS control style. depending on the control style the user is most familiar with, whether it be a modeling (CAD) package or a gaming application (FPS). The camera setting is global, so changing the camera style on the TLAS viewer pane selects the same camera style on the BLAS viewer pane, and vice versa. Switching from CAD control style to FPS control style will not retain the CAD focal point, so upon switching back to CAD you will need to focus on an instance again to revolve the camera around it.

_images/popout_view_2.png
  • The Mouse and keyboard icon will display a list of all the valid hotkeys for the currently selected control style and are primarily used to drive the camera. Common keyboard shortcuts are also described in the keyboard shortcuts section in the settings menu.

  • The Projection combo box allows selection of the projection mode, switching between perspective and orthographic viewing modes. The default is perspective.

  • The Up axis radio buttons allow the orientation of the scene to be changed according to the specified up axis. This will be dependent on the coordinate system of the application from where the trace file originated. Alternatively, the scene can be oriented in the 3D view so it looks correct, then the “U” key can be pressed. RRA will then set the up axis automatically.

  • The Coordinate system checkboxes allow the inversion of the horizontal and vertical axes.

  • The Camera position editboxes show the current camera position. These values can be edited manually if needed. The reset icon can be clicked to move the camera to the origin.

  • The Field of view slider changes the camera’s field of view.

  • The Movement speed slider changes the speed of the camera. The maximum speed can be set in the General section of the settings under Maximum camera movement speed.

Traversal counter visualization

Given the complexity of acceleration structures and the specifics of the ray traversal algorithms that operates on these structures, it can be very diffcult to evaluate the performance cost of a given scene.

The traversal counter visualization will help simplify this complexity and help reduce traversal count signatures by editing BLASes and repositioning of Instances in the TLAS.

  • The counters are calculated on-the-fly and are not the same as those provided by the Radeon GPU Profiler

  • RRA counters terminate on closest hit and ignore any subsequent rays that are launched.

  • RRA also counts custom intersection volumes as a single unit.

An example of a typical scene using the traversal counters is shown below.

_images/loop_count.png

The visualization depends on a counter range provided by the user via the Counter range slider. The range is determined by the scene layout and the counter type selected. Adjusting the slider will alter the coloration of the scene. The colors are displayed as a heatmap, so blue represents a low counter value and red represents a higher counter value by default. Generally, the lower the counter value, the more optimal the scene will be. This visualization shows how costly ray traversals are, but does not account for TLAS and BLAS build times which also affect overall performance.

There are several different counter types to choose from:

  • The Loop count is the number of iterations the ray performs on the acceleration structure. It allows the user to identify parts of the acceleration structure that are the most taxing for the rays. The loop count will have the largest counter range of all the counters.

  • The Instance hit is the number of instances that the ray has hit. This is useful in terms of how instance positioning affects traversal time. As a ray traverses into the scene, it is optimized to discard bounding volumes as needed. A ray can discard a volume if a triangle closest hit candidate has been found and the volume is behind the closest hit candidate.

    When a ray hits an instance node, it has to context switch into the BLAS and traverse the BLAS to get a closest-hit triangle and compare this to the current closest-hit triangle, which may be from a different TLAS node. In addition, if instance nodes overlap, the ray must wait until each instance is fully checked.

    It is therefore essential to arrange instances so that context switching into BLAS nodes is minimized.

  • The Box volume hit, Box volume miss, and Box volume test count how many box nodes were hit, missed, and tested, respectively. The number of tests is equal to the sum of the number of hits and misses. Some parts of the scene may be denser depending on the perspective. The dense parts may overlap so the ray may not be able to discard volumes.

  • The triangle hit counter is the number of triangles that have been used as the closest hit candidate. As the ray traverses an acceleration structure, it may encounter triangles in an unspecified order. If the ray hits a triangle, it will compare this triangle with the current closest hit triangle. If there isn’t a closest hit triangle, this triangle will be assigned as the closest hit. The triangle miss is the number of triangles that have been tested but were not a closest hit. The triangle test is the sum of hits and misses.

Coloring modes

The coloring modes are available in a row above the scene rendering.

  1. BVH Coloring allows the bounding volume wireframes to be painted depending on a number of different parameters. The following BVH coloring modes are currently supported within the TLAS viewer:

    • Volume type

      The bounding volume coloring is based on the node types, allowing box, triangle, procedural geometry and instance nodes to be distinguished from one another. The selected BVH is also colored differently. These colors can be configured from the Themes and colors settings pane.

    • Tree depth

      Each bounding volume is assigned a color based on how deep in the hierarchy it is.

  2. Geometry Coloring is only available for the Geometry rendering mode and allows the scene to be painted depending on a number of different parameters, for example, each BLAS can be colored differently enabling the user to see if their grouping of objects in the scene is optimal.

    Some of these coloring modes use a heatmap coloring scheme, some use fixed colors and some have colors that are selectable from the Themes and colors pane. The type of heatmap can be selected from the Heatmap combo box to the right of the Geometry coloring combo box. This is described in a bit more detail later on.

    Several coloring modes mention the surface area heuristic (SAH) of triangles. This is a value between 0 and 1 which is proportional to the probability a ray will intersect with a triangle given that it intersects with its bounding box, where 0 (bad) means low probability and 1 (good) means high probability. Triangles with low SAH often are long, skinny, and not axis-aligned in BLAS space.

    The following geometry coloring modes are supported within the TLAS viewer, and its coloring scheme:

    • Average SAH (BLAS)

      A heatmap showing the average surface area heuristic of all triangles in a BLAS.

    • SAH (Triangle)

      A heatmap showing the surface area heuristic of each individual triangle.

    • Minimum SAH (BLAS)

      A heatmap showing the minimum surface area heuristic of all triangles in a BLAS.

    • Mask (Instance)

      A unique color for each combination of instance mask flags.

    • Opacity (Geometry)

      A color showing the presence of the opacity flag. These colors can be configured in the Themes and colors section of the Settings under ‘Opacity coloring’.

    • Geometry index (Geometry)

      A unique color for each geometry index within a BLAS.

    • Fast build/trace flag (BLAS)

      Combines the FastBuild and FastTrace build flags, giving 4 possible color combinations. These colors can be configured in the Themes and colors section of the Settings under ‘Build type coloring’.

    • Allow update flag (BLAS)

      Shows whether the ‘AllowUpdate’ build flag is enabled. These colors can be configured in the Themes and colors section of the Settings under ‘Build type coloring’.

    • Allow compaction flag (BLAS)

      Shows whether the ‘AllowCompaction’ build flag is enabled. These colors can be configured in the Themes and colors section of the Settings under ‘Flag indication colors’.

    • Low memory flag (BLAS)

      Shows whether the ‘LowMemory’ build flag is enabled. These colors can be configured in the Themes and colors section of the Settings under ‘Flag indication colors’.

    • Facing cull disable flag (Instance)

      Shows whether the ‘FacingCullDisable’ instance flag is enabled. These colors can be configured in the Themes and colors section of the Settings under ‘Flag indication colors’.

    • Flip facing flag (Instance)

      Shows whether the ‘FlipFacing’ instance flag is enabled. These colors can be configured in the Themes and colors section of the Settings under ‘Flag indication colors’.

    • Force opaque / no opaque flag (Instance)

      Combines the ForceOpaque and ForceNoOpaque instance flags, giving 4 possible color combinations. These colors can be configured in the Themes and colors section of the Settings under ‘Instance force opaque/no-opaque’.

    • Tree level (Triangle)

      A heatmap showing the triangle’s depth within the BVH.

    • Max tree depth (BLAS)

      A heatmap showing the maximum tree depth of each BLAS.

    • Average tree depth (BLAS)

      A heatmap showing the average tree depth of each BLAS.

    • Unique color (BLAS)

      A unique color for each BLAS.

    • Unique color (Instance)

      A unique color for each instance.

    • Instance count (BLAS)

      A heatmap showing how many instances each BLAS has.

    • Triangle count (BLAS)

      A heatmap showing the triangle count of each BLAS.

    • Lighting

      Directionally lit shading.

    • Technical drawing

      Directionally lit Gooch shading.

  3. Traversal counters is only available when the Traversal rendering mode is enabled, and allows for different hit and test counters to be used when colorizing the scene. Each pixel shows how many bounding volume tests or hits were performed. There are a number of counters available and details of each can be obtained by opening up the combo box and mousing over each option which will display a tooltip. All of the traversal counter coloring modes use the heatmap coloring scheme.

    The following counters are supported:

    • Loop count

      The number of iterations the ray performs on the acceleration structure.

    • Instance hit

      The number of instances that are hit before the closest hit is found.

    • Box volume hit

      The number of volumes the ray interects with.

    • Box volume miss

      The number of volumes the ray has been tested with but doesn’t intersect with.

    • Box volume test

      The number of volumes the ray is tested with. This is the sum of box hits and misses.

    • Triangle hit

      The number of triangles which have been considered the closest hit candidate.

    • Triangle miss

      The number of triangles which have been been tested but not considered the closest hit candidate.

    • Triangle test

      The number of triangles which the ray has been tested against. This is the sum of triangle hits and misses.

  4. Heatmap selection allows which heatmap to use. The default heatmap uses a temperature scheme where the colors vary from red to blue via green. The spectrum scheme uses more of the visible color spectrum, giving a wider range of colors. The viridis and plasma color schemes are perceptually uniform heatmaps. Each heatmap will show the scene slightly differently with some heatmaps showing certain areas of the scene better than others.

The TLAS Instances Tab

The TLAS Instances tab displays a read-only table of properties and statistics for all instances in the selected TLAS.

_images/tlas_instances_1.png

The following fields are displayed:

  • Instance address – The virtual address for the instance node within the TLAS.

  • Instance offset – The offset for the instance node within the TLAS.

  • Instance mask - The mask specified for the instance node.

  • X Position – The X-position of the instance in the scene.

  • Y Position – The Y-position of the instance in the scene.

  • Z Position – The Z-position of the instance in the scene.

  • Transform[x][y] - The instance transform, comprising of the rotation and scaling components.

The columns can be sorted by clicking on them. The arrow in the heading shows if sorting is in ascending or decending order.

Typically, instances are created with their own local co-ordinate system. When placed in the scene, each instance requires a transformation from its local co-ordinate system to the world co-ordinate system. This is shown by the position and transform matrix in the table.

In some cases, the positions can all be 0. This just means that the instance has been created in world-space co-ordinates and does not need to be translated. This is typically done when only one instance of a BLAS is used in a scene.

The BLAS List

The BLAS List tab displays a read-only table of BLAS properties and statistics.

_images/blas_list_1.png

The following fields are displayed:

  • Address – The virtual address for the BLAS structure in application memory.

  • Allow update - The state of the AllowUpdate build flag.

  • Allow compaction - The state of the AllowCompaction build flag.

  • Low memory - The state of the LowMemory build flag.

  • Build type - The state of the FastTrace/FastBuild build flags.

  • Instances – The number of instances of the given BLAS within the parent TLAS.

  • Nodes – The total number of nodes in the BLAS, including leaf nodes.

  • Boxes – The total number of box nodes within the BLAS, including both Box16 and Box32.

  • 32-bit boxes – The total number of 32-bit box nodes in the BLAS.

  • 16-bit boxes – The total number of 16-bit box nodes in the BLAS.

  • Triangle nodes – The total number of triangle nodes within the BLAS.

  • Procedural nodes – The total number of procedural nodes within the BLAS.

  • Memory usage - The amount of GPU memory used to store this BLAS.

  • Root SAH – The computed surface area heuristic for the BLAS.

  • Min SAH – The minimum surface area heuristic for the BLAS.

  • Mean SAH – The average surface area heuristic for the BLAS.

  • Max. depth – The maximum depth of the BLAS.

  • Avg. depth – The average depth of the BLAS.

The columns can be sorted by clicking on them. The arrow in the heading shows if sorting is in ascending or decending order.

Double-clicking an item in the table will jump to the BLAS Viewer pane and show the selected BLAS.

The TLAS Properties Tab

The Properties tab displays a read-only table of properties and statistics for the selected TLAS.

_images/tlas_properties_1.png

The BLAS windows

These panes show information about a bottom-level acceleration structure.

The BLAS Viewer

This pane is very similar to the TLAS viewer, except the leaf nodes are triangles instead of instances.

_images/blas_viewer_1.png

The most commonly used widgets are available in a row below the pane tabs.

  1. The BLAS dropdown allows selection of which BLAS to view.

  2. BVH Coloring allows the bounding volume wireframes to be painted depending on a number of different parameters. See the TLAS documentation for more details on these coloring modes.

  3. Geometry coloring allows the scene to be painted depending on a number of different parameters. The list of coloring modes is a subset used by the TLAS geometry modes combo box. See the TLAS documentation for more details on these coloring modes.

  4. Heatmap selection allows changing the color scheme of the heatmap. See the TLAS documentation for more details on these coloring modes.

On the left will be information for the bottom level acceleration structure:

  1. The treeview under the dropdown will show the structure of the BLAS. As seen here, the topmost level contains a Box32 structure. This Box32 contains 4 more Box32 structures. The currently opened box shows a list of triangles inside this box.

  2. The section below the treeview gives details about the currently selected node, including the surface area heuristic, and extents.

  3. If the selected node is a triangle node then the triangle vertex positions will be displayed, as well as geometry flags of the geometry that the triangle is a part of.

In the center is a rendering of the bounding volume and geometry contained within that volume. Please see the TLAS help section for more information since the control modes and functionality is similar to the TLAS scene display.

It is possible to select individual triangles within the scene by clicking on a mesh within the viewport. The BLAS hierarchy tree view will expand as necessary to focus on the selected triangle node.

On the right are the same rendering and camera controls as seen in the TLAS pane; the functionality of these are nearly identical. The only difference is that there is no option to show instance transforms in the BLAS pane.

The BLAS Instances Tab

The Instances tab displays a read-only table of properties and statistics for instances of the selected BLAS.

_images/blas_instances_1.png

Above the table is the base address of the BLAS used by all the instances.

The following fields are displayed:

  • Instance address – The virtual address for the instance node within the TLAS.

  • Instance offset – The offset for the instance node within the TLAS.

  • Instance mask - The mask specified for the instance node.

  • X Position – The X-position of the instance in the scene.

  • Y Position – The Y-position of the instance in the scene.

  • Z Position – The Z-position of the instance in the scene.

  • Transform[x][y] - The instance transform, comprising of the rotation and scaling components.

The columns can be sorted by clicking on them. The arrow in the heading shows if sorting is in ascending or decending order.

Typically, instances are created with their own local co-ordinate system. When placed in the scene, each instance requires a transformation from its local co-ordinate system to the world co-ordinate system. This is shown by the positional information in the table; if an instance is used more than once, each instance will have a unique position. If there are duplicate positions, then there are multiple instances at the same world position, which is redundant; the duplicates can be removed.

In some cases, the positions can all be 0. This just means that the instance has been created in world-space co-ordinates and does not need to be translated. This is typically done when only one instance of a BLAS is used in a scene.

The Triangles Tab

The Triangles tab displays a read-only table of properties and statistics for triangle nodes in the selected BLAS.

_images/triangles_1.png

Above the table is the base address of the BLAS used by all the triangles, and the base address of the TLAS containing the BLAS.

The following fields are displayed:

  • Triangle address – The virtual address for the instance node within the TLAS.

  • Triangle offset – The offset for the instance node within the TLAS.

  • Triangle count – The number of triangles in the triangle node.

  • Geometry index – The geometry index of the triangle.

  • Is inactive - Is this triangle node inactive.

  • Triangle surface area - The surface area of the triangle node.

  • SAH - The surface area heuristic of the triangle node.

  • Vertex0

  • Vertex1

  • Vertex2

  • Vertex3 - Only used if 2 or more triangles in the node.

The columns can be sorted by clicking on the column header, apart from the vertex columns; sorting is disabled for these columns. The arrow in the heading shows if sorting is in ascending or decending order.

The BLAS Properties Tab

The Properties tab displays a read-only table of properties and statistics for the selected BLAS.

_images/blas_properties_1.png

DISCLAIMER

The information contained herein is for informational purposes only, and is subject to change without notice. While every precaution has been taken in the preparation of this document, it may contain technical inaccuracies, omissions and typographical errors, and AMD is under no obligation to update or otherwise correct this information. Advanced Micro Devices, Inc. makes no representations or warranties with respect to the accuracy or completeness of the contents of this document, and assumes no liability of any kind, including the implied warranties of noninfringement, merchantability or fitness for particular purposes, with respect to the operation or use of AMD hardware, software or other products described herein. No license, including implied or arising by estoppel, to any intellectual property rights is granted by this document. Terms and limitations applicable to the purchase or use of AMD’s products are as set forth in a signed agreement between the parties or in AMD’s Standard Terms and Conditions of Sale.

AMD, the AMD Arrow logo, Radeon, Ryzen, RDNA and combinations thereof are trademarks of Advanced Micro Devices, Inc. Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.

DirectX is a registered trademark of Microsoft Corporation in the US and other jurisdictions.

Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.

Microsoft is a registered trademark of Microsoft Corporation in the US and other jurisdictions.

Windows is a registered trademark of Microsoft Corporation in the US and other jurisdictions.

© 2022 Advanced Micro Devices, Inc. All rights reserved.