Skip to content

Commit 2e1721e

Browse files
authored
Publish Radeon Developer Panel v3.5.1 source code (#77)
* Publish Radeon Developer Panel v3.5.1 source code This commit updates the repository with Radeon Developer Panel v3.5.1 release source code * Fix dll load search path * Update RELEASE_NOTES.txt
1 parent 3707a62 commit 2e1721e

32 files changed

Lines changed: 759 additions & 121 deletions

‎CMakeLists.txt‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
2525
set(RDP_MAJOR_VERSION 3)
2626
set(RDP_MINOR_VERSION 5)
2727
if (NOT RDP_PATCH_NUMBER)
28-
set(RDP_PATCH_NUMBER 0)
28+
set(RDP_PATCH_NUMBER 1)
2929
endif ()
3030
if (NOT RDP_BUILD_NUMBER)
3131
set(RDP_BUILD_NUMBER 0)

‎RELEASE_NOTES.txt‎

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
Radeon™ Developer Panel v3.5.0
1+
Radeon™ Developer Panel v3.5.1
22
------------------------------
33

4-
1) New RDP Command Line Interface (CLI) for scripted and automated workflows.
5-
2) Driver Experiments and Device Clocks moved to new System tab.
6-
3) Display all drivers in the System Info widget with per-GPU driver version information.
7-
4) Render operation count UI added to the profiling view.
8-
5) Bug/stability fixes.
4+
1) Marker-based capture for Radeon Raytracing Analyzer (RRA) scenes. Captures can now be triggered by user
5+
markers embedded in the application instead of the capture button or hotkey, from both the panel UI and
6+
the command line interface. The panel arms the capture automatically when the application starts; on the
7+
command line, request it with the capture command, or automatically with --rra-auto-capture and
8+
--rra-auto-capture-delay. Requires AMD driver version 26.20 or newer.
9+
2) Support for additional AMD RDNA™ 3.5-based APUs.
10+
3) Bug/stability fixes.
911

1012
Known Issues
1113
-----------------------------------------
@@ -18,12 +20,14 @@ Known Issues
1820
When this happens, Radeon Developer Panel will prompt the user to recapture.
1921
4) In some rare cases, data for one or more cache counters may be missing. Usually, recapturing will allow the missing
2022
data to show up.
21-
5) Cache and ray tracing counter data collection is not currently supported on RDNA based APUs.
23+
5) On APUs, cache and ray tracing counter data collection is supported only on RDNA 3.5-based APUs
24+
(requires a 25.10-based driver or newer).
2225
6) For systems consisting of an AMD APU and an AMD discrete GPU, capturing profiles should work, but an error
2326
may be logged in the Radeon Developer Panel regarding not being able to set peak clock mode.
2427
It is recommended that the GPU in the APU be disabled in the BIOS.
2528
7) Crash Analysis is not supported on RX 6750 XT.
26-
8) New Hardware Crash Analysis option is not supported on APUs.
29+
8) On APUs, Hardware Crash Analysis is supported only on RDNA 3.5-based APUs. It requires a 25.10-based driver
30+
or newer on Strix Point APUs, and a 25.20-based driver or newer on Strix Halo and Krackan Point APUs.
2731

2832

2933
* Windows®
@@ -33,10 +37,7 @@ Known Issues
3337
2) On RDNA 2 cards (AMD Radeon RX 6000 series), in certain situations, the "Disable depth-stencil texture compression"
3438
experiment has no impact.
3539
3) Counter collection is not supported on ROG Xbox Ally.
36-
4) Crash Analysis is not supported on ROG Xbox Ally or ROG Xbox Ally X.
37-
5) Vulkan applications running under Radeon Developer Panel with Crash Analysis enabled may not disconnect properly.
38-
When a Vulkan app is closed manually without triggering a TDR, the Vulkan driver can keep the process alive.
39-
RDP never receives a client disconnect, leaving a zombie process visible in Task Manager even after closing RDP.
40+
4) Crash Analysis is not supported on ROG Xbox Ally.
4041

4142
* Linux®
4243

@@ -64,6 +65,15 @@ Known Issues
6465
Release Notes History
6566
-------------------------------------
6667

68+
v3.5.0 Updates
69+
------------------------------
70+
71+
1) New RDP Command Line Interface (CLI) for scripted and automated workflows.
72+
2) Driver Experiments and Device Clocks moved to new System tab.
73+
3) Display all drivers in the System Info widget with per-GPU driver version information.
74+
4) Render operation count UI added to the profiling view.
75+
5) Bug/stability fixes.
76+
6777
v3.4.1 Updates
6878
------------------------------
6979

‎documentation/source/conf.py‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# -*- coding: utf-8 -*-
22
#
3-
# Copyright (c) 2021-2026 Advanced Micro Devices, Inc. All rights reserved.
3+
# Copyright Advanced Micro Devices, Inc.
4+
# SPDX-License-Identifier: MIT
5+
46
#
57
# Radeon GPU Profiler documentation build configuration file, created by
68
# sphinx-quickstart on Fri Jun 30 12:01:48 2017.
@@ -60,9 +62,9 @@
6062
# built documents.
6163
#
6264
# The short X.Y version.
63-
version = u'3.5.0'
65+
version = u'3.5.1'
6466
# The full version, including alpha/beta/rc tags.
65-
release = u'3.5.0'
67+
release = u'3.5.1'
6668

6769
# The language for content autogenerated by Sphinx. Refer to documentation
6870
# for a list of supported languages.

‎documentation/source/features.rst‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,26 @@ The **Capture** section has the following items for raytracing:
158158
- **Ray dispatch buffer size**:
159159
* Defines the buffer size in system memory used for allocating ray dispatch data during scene capture.
160160

161+
The **Marker capture** section allows capture to be triggered by user-defined markers embedded in the application
162+
instead of by the capture button or hotkey. This is useful when the moment of interest is difficult to reach
163+
interactively or needs to be captured deterministically across runs.
164+
165+
.. NOTE::
166+
Marker-based capture is only available when running with AMD driver version 26.20 or newer. The
167+
**Marker capture** section is hidden when the installed driver does not support it.
168+
169+
- **Enable marker-based capture** - When enabled, capture is triggered by user markers instead of by the capture button
170+
or hotkey. Insert the begin marker in your application to start capture, and the end marker to finish.
171+
Enable it before starting the application: the panel arms the capture automatically when the application connects,
172+
in the same way as auto capture in the Profiling UI. While the application is connected, the capture button, hotkey,
173+
and capture settings are disabled. One scene is captured per graphics device the application creates; restart the
174+
application to capture again. The capture is armed half a second after the application creates its graphics device, so markers emitted
175+
before then are missed.
176+
177+
- **Begin marker** - The marker string that starts the capture. Defaults to ``RRABeginMarker``.
178+
179+
- **End marker** - The marker string that ends the capture. Defaults to ``RRAEndMarker``.
180+
161181
Capturing a scene can be achieved by the following:
162182

163183
* **Click the Capture scene button**
78.6 KB
Loading
-17.4 KB
Binary file not shown.
-35.7 KB
Binary file not shown.

‎documentation/source/radeon_developer_panel_cli.rst‎

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,21 @@ Profiling (RGP) options
4848
* - Option
4949
- Description
5050
* - ``-a, --rgp-auto-capture <spec>``
51-
- Auto-capture mode. Formats: ``frame[:N]`` captures at frame N (default 0); ``dispatch[:start[:count]]`` captures a range of dispatches.
51+
- Auto-capture mode. Formats: ``frame[:N]`` captures at frame N (``N`` must be at least 5; default 5, as the trace controller reserves the first few frames for capture preparation); ``dispatch[:start[:count]]`` captures a range of dispatches (``start`` must be at least 1, default 1; ``count`` default 1).
5252
* - ``--rgp-auto-capture-delay <ms>``
5353
- Delay in milliseconds before dispatch auto-capture starts. Default: 0.
5454
* - ``--rgp-capture-mode <mode>``
55-
- RGP capture mode: ``default``, ``frame``, ``draw``, ``dispatch``. ``default`` lets the driver choose based on the API. Default: ``default``.
55+
- RGP capture mode: ``default``, ``frame``, ``draw``, ``dispatch``. ``default`` lets the driver choose based on the API. Any other value is rejected. Default: ``default``.
5656
* - ``--rgp-render-op-count <count>``
57-
- Number of render operations to capture in ``draw`` or ``dispatch`` mode (ignored in ``frame`` mode). Default: 1.
57+
- Number of render operations to capture in ``draw`` or ``dispatch`` mode (ignored in ``frame`` mode). Must be at least 1 when the capture mode is ``draw`` or ``dispatch``. Default: 1.
5858
* - ``--rgp-instruction-tracing``
5959
- Enable instruction-level tracing for detailed shader analysis.
6060
* - ``--rgp-counter-collection``
6161
- Enable hardware counter collection.
6262
* - ``--rgp-shader-instrumentation``
6363
- Enable shader instrumentation.
6464
* - ``--rgp-sqtt-buffer-size <size>``
65-
- SQTT buffer size: ``minimum``, ``low``, ``default``, ``high``, ``maximum``. Default: ``default``.
65+
- SQTT buffer size: ``minimum``, ``low``, ``default``, ``high``, ``maximum``. An unrecognized value is not an error; it falls back to ``default``. Default: ``default``.
6666

6767
Raytracing (RRA) options
6868
------------------------
@@ -74,11 +74,55 @@ Raytracing (RRA) options
7474
* - Option
7575
- Description
7676
* - ``--rra-ray-history-buffer-size <size>``
77-
- Ray history buffer size: ``disabled``, ``minimum``, ``low``, ``default``, ``high``, ``maximum``. Default: ``default``. This option requires ray dispatch data collection to be enabled; explicit arguments are rejected when ``--rra-collect-ray-dispatch-data=false``.
77+
- Ray history buffer size: ``disabled``, ``minimum``, ``low``, ``default``, ``high``, ``maximum``. An unrecognized value is not an error; it falls back to ``default``. This option requires ray dispatch data collection to be enabled; explicit arguments are rejected when ``--rra-collect-ray-dispatch-data=false``. Default: ``default``.
7878
* - ``--rra-collect-ray-dispatch-data <true|false>``
7979
- Collect ray dispatch data (ray history). Pass ``--rra-collect-ray-dispatch-data=false`` to disable ray history collection. When disabled, explicit ``--rra-ray-history-buffer-size`` arguments are rejected by the CLI. Default: ``true``.
8080
* - ``--rra-delay-ms <ms>``
8181
- Delay in milliseconds before triggering each raytracing capture (0 = no delay). Default: 0.
82+
* - ``--rra-auto-capture``
83+
- Request the capture automatically when the application creates its graphics device, then exit, instead of waiting for the ``c`` (capture) interactive command. Combine with ``--rra-marker-capture`` to capture the region between the markers without any interaction.
84+
* - ``--rra-auto-capture-delay <ms>``
85+
- Delay in milliseconds between the application creating its graphics device and the automatic capture request. Requires ``--rra-auto-capture``; the CLI exits with an error otherwise. Default: 0.
86+
* - ``--rra-marker-capture``
87+
- Capture the region between user markers embedded in the application instead of a frame. The capture is still requested with the ``c`` interactive command, or automatically with ``--rra-auto-capture``; it then begins at the next begin marker. Requires **both** ``--rra-marker-begin`` and ``--rra-marker-end``; the CLI exits with an error if either is missing. Requires AMD driver version 26.20 or newer.
88+
* - ``--rra-marker-begin <string>``
89+
- Marker string that starts the capture. Only meaningful together with ``--rra-marker-capture``.
90+
* - ``--rra-marker-end <string>``
91+
- Marker string that ends the capture. Only meaningful together with ``--rra-marker-capture``.
92+
93+
.. NOTE::
94+
Marker-based capture requires AMD driver version 26.20 or newer. Unlike the
95+
panel UI, the CLI does not supply default marker strings — ``--rra-marker-begin``
96+
and ``--rra-marker-end`` must both be given explicitly whenever
97+
``--rra-marker-capture`` is used.
98+
99+
The markers only take effect once a capture has been requested, either
100+
manually with the ``c`` interactive command or automatically with
101+
``--rra-auto-capture``. With ``--rra-auto-capture``, use an
102+
``--rra-auto-capture-delay`` of around 500 ms: a capture requested
103+
immediately after the graphics device is created can be empty, because the
104+
driver has not finished setting up raytracing yet. Markers emitted before the
105+
delay elapses are missed.
106+
107+
Example — capture the region between two markers, requesting the capture with the ``c`` interactive command:
108+
109+
.. code-block:: bash
110+
111+
RadeonDeveloperPanelCLI --mode raytracing \
112+
--rra-marker-capture \
113+
--rra-marker-begin RRABeginMarker \
114+
--rra-marker-end RRAEndMarker
115+
116+
Example — capture the region between two markers automatically, without any interaction:
117+
118+
.. code-block:: bash
119+
120+
RadeonDeveloperPanelCLI --mode raytracing \
121+
--rra-auto-capture \
122+
--rra-auto-capture-delay 500 \
123+
--rra-marker-capture \
124+
--rra-marker-begin RRABeginMarker \
125+
--rra-marker-end RRAEndMarker
82126
83127
Crash Analysis (RGD) options
84128
-----------------------------

‎source/api/RdpCaptureApi.h‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ typedef enum
115115
{
116116
kRdpCaptureRaytracingEnableParamFlagNone = 0, ///< No flags.
117117
kRdpCaptureRaytracingEnableParamFlagEnableMarkerCapture = 1, ///< Enables marker-based capture instead of frame-based.
118+
kRdpCaptureRaytracingEnableParamFlagUseAutoCapture = 2, ///< Requests a capture automatically after the application creates its device (API 1.1+).
118119

119120
} RdpCaptureRaytracingEnableParamFlags;
120121

@@ -123,8 +124,9 @@ typedef struct RdpCaptureRaytracingEnableParams
123124
{
124125
uint32_t flags; ///< RdpCaptureRaytracingEnableParamFlags.
125126

126-
const char* marker_begin_string; ///< The marker string that starts the capture (only used if marker capture is enabled).
127-
const char* marker_end_string; ///< The marker string that ends the capture (only used if marker capture is enabled).
127+
uint32_t auto_capture_delay_ms; ///< Delay in milliseconds before auto-capture fires (only used if auto-capture is enabled).
128+
const char* marker_begin_string; ///< The marker string that starts the capture (only used if marker capture is enabled).
129+
const char* marker_end_string; ///< The marker string that ends the capture (only used if marker capture is enabled).
128130
} RdpCaptureRaytracingEnableParams;
129131

130132
/// @brief Bitmask for RdpCaptureCrashAnalysisEnableParams flags.
@@ -935,11 +937,11 @@ typedef struct RdpCaptureFnTable
935937
///@brief The major version of the API.
936938
#define RDP_CAPTURE_API_VERSION_MAJOR 1
937939

938-
/// @brief The minor version of the API.
939-
#define RDP_CAPTURE_API_VERSION_MINOR 0
940+
/// @brief The minor version of the API. 1.1 added kRdpCaptureRaytracingEnableParamFlagUseAutoCapture.
941+
#define RDP_CAPTURE_API_VERSION_MINOR 1
940942

941943
/// @brief The patch version of the API.
942-
#define RDP_CAPTURE_API_VERSION_PATCH 1
944+
#define RDP_CAPTURE_API_VERSION_PATCH 0
943945

944946
/// @brief Get the function table.
945947
/// @param [in] major_version The desired major version.

‎source/api/USER_GUIDE.md‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,16 @@ sub-table on `RdpCaptureFnTable` for per-feature operations.
210210
- **Memory Trace** — Use `fn.memory_trace.insert_snapshot()` to mark points of
211211
interest, then `dump_trace()` to write the RMV trace.
212212
- **Raytracing** — Configure ray history buffer size and optional marker-based
213-
capture via `RdpCaptureRaytracingParams`.
213+
capture via `RdpCaptureRaytracingParams`. To capture without calling
214+
`begin_trace()`, set `kRdpCaptureRaytracingEnableParamFlagUseAutoCapture` in
215+
`RdpCaptureRaytracingEnableParams::flags` (API 1.1 or newer); the trace is
216+
requested `auto_capture_delay_ms` after the application creates its graphics
217+
device. A delay of around 500 ms is recommended, since a trace requested
218+
immediately can be empty. Call `fn.raytracing.set_params()` before
219+
`fn.enable_feature()` when using auto-capture: the request can start as soon as
220+
the feature is enabled, and it uses the parameters installed at that point. With marker-based capture enabled, the markers decide when the
221+
capture begins and ends, whether the trace was requested with `begin_trace()`
222+
or automatically.
214223
- **Crash Analysis** — Enable with optional enhanced analysis and summary
215224
generation via `RdpCaptureCrashAnalysisEnableParams`; the trace arrives through
216225
the trace-finished callback as a `.rgd` dump.
@@ -270,6 +279,13 @@ macros. Always pass these to `RdpCaptureGetFnTable()`; if the loaded library is
270279
incompatible it returns `kRdpCaptureResultVersionMismatch` and the table is left
271280
untouched.
272281

282+
Only the major version is checked. A minor version adds capabilities without
283+
changing the layout of existing structs, and a library older than the header you
284+
built against silently ignores what it does not know: for example, a 1.0 library
285+
ignores `kRdpCaptureRaytracingEnableParamFlagUseAutoCapture` (added in 1.1), so
286+
no capture is ever requested. Load a library at least as new as the header you
287+
built against.
288+
273289
## Result codes
274290

275291
Most calls return an `RdpCaptureResult`. Check against

0 commit comments

Comments
 (0)