├── README.md ├── docs ├── Makefile ├── requirements.txt └── source │ ├── _static │ └── theme_overrides.css │ ├── bug_report.rst │ ├── capture.rst │ ├── conf.py │ ├── features.rst │ ├── index.rst │ ├── initial_setup.rst │ ├── known_issues.rst │ ├── media │ ├── 3.0 │ │ ├── 0_connection_page.png │ │ ├── 10_rgp_capture.png │ │ ├── 11_rmv_connected.png │ │ ├── 12_rmv_done.png │ │ ├── 13_preset_hamburger.png │ │ ├── 14_create_preset.png │ │ ├── 15_crash_analysis_warning.png │ │ ├── 16_load_crash_analysis.png │ │ ├── 17_device_clocks.png │ │ ├── 18_application_filters.png │ │ ├── 19_compute_auto_none.png │ │ ├── 1_connection_remote_ip.png │ │ ├── 20_blocked_apps.png │ │ ├── 21_recent_profiles.png │ │ ├── 22_memory_tracing.png │ │ ├── 23_raytracing.png │ │ ├── 24_crash_analysis.png │ │ ├── 24_crash_analysis_context.png │ │ ├── 25_settings.png │ │ ├── 26_service_configuration.png │ │ ├── 27_system_info.png │ │ ├── 28_output_log.png │ │ ├── 29_presets.png │ │ ├── 2_capture_tab_landing.png │ │ ├── 30_custom_preset_saving.png │ │ ├── 31_theme_options.png │ │ ├── 32_driver_experiments.png │ │ ├── 34_driver_experiments_client_banner.png │ │ ├── 35_driver_experiment_modified.png │ │ ├── 36_driver_experiment_applied.png │ │ ├── 37_driver_experiment_failed_apply.png │ │ ├── 38_driver_experiment_unsupported.png │ │ ├── 3_add_memory_trace.png │ │ ├── 4_existing_applications.png │ │ ├── 5_api_filter.png │ │ ├── 6_blocklist.png │ │ ├── 7_system_info.png │ │ ├── 8_output_log.png │ │ └── 9_app_connected.png │ ├── Add_User_1.png │ ├── Advanced_Mode_App_Workflow_1.png │ ├── Application_1.png │ ├── Bat_1.png │ ├── Blocked_apps_1.png │ ├── Clocks_1.png │ ├── Connection_1.png │ ├── CrashDump_1.png │ ├── CrashDump_2.png │ ├── CrashDump_Output.png │ ├── CrashDump_Workflow.png │ ├── Firewall_1.png │ ├── Firewall_2.png │ ├── Firewall_3.png │ ├── Global_Workflow_1.png │ ├── Log_1.png │ ├── MemoryTrace_01.png │ ├── Paths_1.png │ ├── Profiling_1.png │ ├── RDS_1.png │ ├── Raytracing_1.png │ ├── Run_1.png │ ├── Select_User_1.png │ ├── System_1.png │ ├── System_Info.png │ ├── Users_1.png │ ├── Workflow_1.png │ ├── Workflow_CrashAnalysis.png │ ├── Workflow_MemoryTrace_Config.png │ ├── Workflow_Profiling_Config.png │ ├── Workflow_Profiling_Config_OpenCL.png │ ├── Workflow_Profiling_Config_OpenCL_AutoCapture.png │ ├── Workflow_Profiling_Config_OpenCL_AutoCapture_Timer.png │ └── Workflow_Raytracing_Config.png │ ├── radeon_developer_service.rst │ ├── remote_connections.rst │ └── settings.rst └── readthedocs.yaml /README.md: -------------------------------------------------------------------------------- 1 | Radeon Developer Panel 2 | ---------------------- 3 | The Radeon Developer Panel (RDP) is a software tool that allows users to capture RGP profiles, RMV traces, RRA scenes, and RGD crash analysis dumps on Radeon GPUs. 4 | 5 | The Radeon Developer Panel consists of 2 main components : 6 | 7 | * The Radeon Developer Service (RDS) - A system tray application that 8 | unlocks the Developer Mode Driver features and supports 9 | communications with high level tools. A headless version is also 10 | available called RadeonDeveloperServiceCLI. 11 | * The Radeon Developer Panel (RDP) - the tool that interacts with RDS. 12 | 13 | Documentation 14 | ------------- 15 | The documentation for the Radeon Developer Panel can be found in each release. In the release .zip file or .tgz file, there will be a "docs" directory. Simply open the index.html file found under docs\help\rdp\html in a web browser to view the documentation. The documentation is also available from within the Radeon Developer Panel. 16 | 17 | The documentation is hosted publicly at : http://radeon-developer-panel.readthedocs.io/en/latest/ 18 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = python -msphinx 7 | SPHINXPROJ = RadeonDeveloperPanel 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | 12 | # Put it first so that "make" without argument is like "make help". 13 | help: 14 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 15 | 16 | .PHONY: help Makefile 17 | 18 | # Catch-all target: route all unknown targets to Sphinx using the new 19 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 20 | %: Makefile 21 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | # Defining requirements for docs 2 | sphinx==5.3.0 3 | sphinx_rtd_theme==1.1.1 4 | readthedocs-sphinx-search==0.1.1 -------------------------------------------------------------------------------- /docs/source/_static/theme_overrides.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2022 AMD Inc. All rights reserved. */ 2 | .wy-nav-content { 3 | max-width: none; 4 | } -------------------------------------------------------------------------------- /docs/source/bug_report.rst: -------------------------------------------------------------------------------- 1 | Bug Report 2 | ========== 3 | 4 | At any time, a bug report template can be generated by clicking the bug button in the upper right corner. This will copy a template to your clipboard with relevant information such as the graphics cards and operating system of the connected system. 5 | 6 | When reporting bugs, please use the generated template and fill in the description and proper steps to reproduce the issue marked by the **"(fill me in)"** sections. -------------------------------------------------------------------------------- /docs/source/capture.rst: -------------------------------------------------------------------------------- 1 | Capture 2 | ======= 3 | 4 | After a connection is made to the service, the panel will switch to the 5 | **Capture** tab. 6 | 7 | .. image:: media/3.0/2_capture_tab_landing.png 8 | 9 | The capture tab is structured as follows: 10 | 11 | - :ref:`AvailableFeatures` - List of supported features for the active connection that can be enabled. 12 | 13 | - :ref:`Applications` - List of actively or previously connected applications. 14 | 15 | - :ref:`BlockedApplications` - List of applications blocked from connecting to the panel. 16 | 17 | - :ref:`SystemInformation` - Lists detailed hardware and system information for the active local or remote connection. 18 | 19 | - :ref:`OutputLog` - Displays log messages generated by the panel. 20 | 21 | .. _AvailableFeatures: 22 | 23 | Available features 24 | ------------------ 25 | 26 | The **Available features** section lists the available features for the current **Local** or **Remote** connection that can be enabled. Features in 27 | this list can be enabled by clicking plus button next to the feature name. 28 | 29 | .. NOTE:: 30 | In some scenarios, features may not be available for enablement due 31 | to conflicts with other already enabled features as shown here: 32 | 33 | .. image:: media/3.0/15_crash_analysis_warning.png 34 | 35 | Presets 36 | ------- 37 | 38 | Provides a set of enabled features and associated feature settings to create common capture workflows. 39 | 40 | .. image:: media/3.0/29_presets.png 41 | 42 | .. IMPORTANT:: 43 | Changes to the enabled features and feature settings of a preset must be explicitly saved as shown below 44 | 45 | .. image:: media/3.0/30_custom_preset_saving.png 46 | 47 | .. _Applications: 48 | 49 | Applications 50 | ------------ 51 | 52 | The **Applications** pane in Radeon Developer Panel contains the list of applications that have connected previously or 53 | are currently connected to the panel. 54 | 55 | Applications can connect to the panel under two auto connection modes: 56 | 57 | - **Any application** - Any application run that matches the selected API filter and is not contained in the blocklist will connect. Applications that are not already present in the application list will be added. 58 | 59 | - **Existing applications** - Only applications with entries specified in the application list that match the selected API filter will connect. 60 | 61 | .. IMPORTANT:: 62 | For using the **Existing applications** auto connect mode, applications can be added to the list using explicitly using 63 | the add button in the **Applications** pane. 64 | 65 | Connections may also be filtered by a specific API such as **DirectX 12**, **Vulkan**, **OpenCL**, etc. 66 | 67 | These modes can be configured by selecting the icon in the top right of the pane which will display the following dialog: 68 | 69 | .. image:: media/3.0/18_application_filters.png 70 | 71 | .. IMPORTANT:: 72 | The **API** specified works as a filter against the client application 73 | accepting the driver connection. If you are unsure of what **API** is being used 74 | or don't care use the default **Any supported** 75 | 76 | Once an application is added to the list, it can then be run on the system to 77 | start a driver connection. 78 | 79 | .. _BlockedApplications: 80 | 81 | Blocked applications 82 | -------------------- 83 | 84 | Sometimes it is useful to completely exclude certain background applications 85 | from being recognized and displayed in the Radeon Developer Panel. For example, 86 | Windows 10 has applications that use DirectX 12 and when they are started can 87 | show up in the list of target applications. The **Profiling** feature also requires 88 | that only one application is started while using the feature so blocking applications, such as launchers 89 | that run before another application starts, can be useful. 90 | 91 | The panel maintains a list of default applications that are blocked on either Windows or Linux. 92 | This list can be viewed from the **Blocklist** pane 93 | which will populate once a local or remote connection has been established. 94 | Applications can be added or removed from the list by clicking one of the buttons below the list 95 | of process names. When editing or removing entries, first select the process name 96 | from the list then click the edit or remove button. The list can also be restored 97 | to the default set of blocked applications. Right clicking on a process name in the 98 | list will display context menu options to add, remove, or edit. 99 | 100 | The blocked applications list supports wildcard matching. The following syntax is supported: 101 | * ? : Matches exactly one of any character 102 | * [...] : Matches one character in a set of characters 103 | * \* : Matches zero or more of any character 104 | 105 | These can be escaped by using backslash. 106 | 107 | Here are some examples of blocked application items that leverage the wildcard matching: 108 | * [Gg]ears.exe : Blocks any application called gears.exe with either a lowercase or uppercase G 109 | * gpu_info\* : Blocks any applications who's name starts with gpu_info 110 | * test?.exe : Blocks any application called test with a single character suffix -- e.g. test1 or test6 111 | 112 | .. image:: media/3.0/20_blocked_apps.png 113 | 114 | .. _SystemInformation: 115 | 116 | System information 117 | ------------------ 118 | 119 | The system information pane lists detailed hardware and system information for the active Radeon Developer Panel connection. 120 | 121 | Pressing the Export button will open a dialog to choose a folder. Upon selecting a folder, the system information will be exported to that folder 122 | as a JSON file. 123 | 124 | .. image:: media/3.0/27_system_info.png 125 | 126 | .. _OutputLog: 127 | 128 | Output log 129 | ---------- 130 | 131 | Logging information about the connection and any errors encountered by Radeon Developer Panel or the Radeon Developer Service is 132 | displayed here. The output log can be filtered by the source that produced the message or the process id that that message was relevant for. 133 | 134 | .. image:: media/3.0/28_output_log.png 135 | 136 | Selecting the **Open log file location** button will open the directory containing the log file. 137 | 138 | | On Windows, this log is located at: 139 | | "C:\\Users\\your_name\\AppData\\Roaming\\RadeonDeveloperPanel\\log.txt" 140 | 141 | | On Linux, this log is located at: 142 | | "~/.local/share/RadeonDeveloperPanel/log.txt" 143 | 144 | -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Radeon GPU Profiler documentation build configuration file, created by 4 | # sphinx-quickstart on Fri Jun 30 12:01:48 2017. 5 | # 6 | # This file is execfile()d with the current directory set to its 7 | # containing dir. 8 | # 9 | # Note that not all possible configuration values are present in this 10 | # autogenerated file. 11 | # 12 | # All configuration values have a default; values that are commented out 13 | # serve to show the default. 14 | 15 | # If extensions (or modules to document with autodoc) are in another directory, 16 | # add these directories to sys.path here. If the directory is relative to the 17 | # documentation root, use os.path.abspath to make it absolute, like shown here. 18 | # 19 | # import os 20 | # import sys 21 | # sys.path.insert(0, os.path.abspath('.')) 22 | from datetime import date 23 | 24 | 25 | # -- General configuration ------------------------------------------------ 26 | 27 | # If your documentation needs a minimal Sphinx version, state it here. 28 | # 29 | # needs_sphinx = '1.0' 30 | 31 | # Add any Sphinx extension module names here, as strings. They can be 32 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 33 | # ones. 34 | extensions = [] 35 | 36 | # Add any paths that contain templates here, relative to this directory. 37 | templates_path = ['_templates'] 38 | 39 | # The suffix(es) of source filenames. 40 | # You can specify multiple suffix as a list of string: 41 | # 42 | # source_suffix = ['.rst', '.md'] 43 | source_suffix = '.rst' 44 | 45 | # The master toctree document. 46 | master_doc = 'index' 47 | 48 | # General information about the project. 49 | project = u'Radeon Developer Panel' 50 | 51 | build_year = str(date.today().year) 52 | 53 | copyright = u'2017-' + build_year + ', Advanced Micro Devices, Inc. All rights reserved.' 54 | author = u'AMD Developer Tools' 55 | 56 | # The version info for the project you're documenting, acts as replacement for 57 | # |version| and |release|, also used in various other places throughout the 58 | # built documents. 59 | # 60 | # The short X.Y version. 61 | version = u'3.3.0' 62 | # The full version, including alpha/beta/rc tags. 63 | release = u'3.3.0' 64 | 65 | # The language for content autogenerated by Sphinx. Refer to documentation 66 | # for a list of supported languages. 67 | # 68 | # This is also used if you do content translation via gettext catalogs. 69 | # Usually you set "language" from the command line for these cases. 70 | language = None 71 | 72 | # List of patterns, relative to source directory, that match files and 73 | # directories to ignore when looking for source files. 74 | # This patterns also effect to html_static_path and html_extra_path 75 | exclude_patterns = [] 76 | 77 | # The name of the Pygments (syntax highlighting) style to use. 78 | pygments_style = 'sphinx' 79 | 80 | # If true, `todo` and `todoList` produce output, else they produce nothing. 81 | todo_include_todos = False 82 | 83 | # -- Options for HTML output ---------------------------------------------- 84 | 85 | # The theme to use for HTML and HTML Help pages. See the documentation for 86 | # a list of builtin themes. 87 | # 88 | 89 | # import sphinx_rtd_theme for retrieving theme 90 | # path from module 91 | import sphinx_rtd_theme 92 | 93 | html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] 94 | html_theme = 'sphinx_rtd_theme' 95 | # html_theme = 'alabaster' 96 | # html_theme = 'classic' 97 | # html_theme = 'sphinxdoc' 98 | # html_theme = 'scrolls' 99 | # html_theme = 'agogo' 100 | # html_theme = 'traditional' 101 | # html_theme = 'nature' 102 | # html_theme = 'haiku' 103 | # html_theme = 'pyramid' 104 | # html_theme = 'bizstyle' 105 | 106 | # Theme options are theme-specific and customize the look and feel of a theme 107 | # further. For a list of options available for each theme, see the 108 | # documentation. 109 | # 110 | # html_theme_options = {'stickysidebar': 'true'} 111 | 112 | # Add any paths that contain custom static files (such as style sheets) here, 113 | # relative to this directory. They are copied after the builtin static files, 114 | # so a file named "default.css" will overwrite the builtin "default.css". 115 | html_static_path = ['_static'] 116 | 117 | 118 | # If a function setup(app) exists, Sphinx will call this function as a normal 119 | # extension during application startup. This method of using the overrides css 120 | # file works better with read the docs (more so than specifying it via the 121 | # html_context tag) 122 | def setup(app): 123 | app.add_css_file('theme_overrides.css') 124 | 125 | 126 | html_show_sourcelink = False 127 | html_show_sphinx = False 128 | 129 | # -- Options for HTMLHelp output ------------------------------------------ 130 | 131 | # Output file base name for HTML help builder. 132 | htmlhelp_basename = 'RadeonDeveloperPaneldoc' 133 | 134 | # -- Options for LaTeX output --------------------------------------------- 135 | 136 | latex_elements = { 137 | # The paper size ('letterpaper' or 'a4paper'). 138 | # 139 | # 'papersize': 'letterpaper', 140 | 141 | # The font size ('10pt', '11pt' or '12pt'). 142 | # 143 | # 'pointsize': '10pt', 144 | 145 | # Additional stuff for the LaTeX preamble. 146 | # 147 | # 'preamble': '', 148 | 149 | # Latex figure (float) alignment 150 | # 151 | # 'figure_align': 'htbp', 152 | } 153 | 154 | # Grouping the document tree into LaTeX files. List of tuples 155 | # (source start file, target name, title, 156 | # author, documentclass [howto, manual, or own class]). 157 | latex_documents = [ 158 | (master_doc, 'RadeonDeveloperPanel.tex', u'Radeon Developer Panel Documentation', 159 | u'AMD Developer Tools', 'manual'), 160 | ] 161 | 162 | # -- Options for manual page output --------------------------------------- 163 | 164 | # One entry per manual page. List of tuples 165 | # (source start file, name, description, authors, manual section). 166 | man_pages = [ 167 | (master_doc, 'radeongpuprofiler', u'Radeon GPU Profiler Documentation', 168 | [author], 1) 169 | ] 170 | 171 | # -- Options for Texinfo output ------------------------------------------- 172 | 173 | # Grouping the document tree into Texinfo files. List of tuples 174 | # (source start file, target name, title, author, 175 | # dir menu entry, description, category) 176 | texinfo_documents = [ 177 | (master_doc, 'RadeonGPUProfiler', u'Radeon GPU Profiler Documentation', 178 | author, 'RadeonGPUProfiler', 'One line description of project.', 179 | 'Miscellaneous'), 180 | ] 181 | 182 | # -- Options for Epub output ---------------------------------------------- 183 | 184 | # Bibliographic Dublin Core info. 185 | epub_title = project 186 | epub_author = author 187 | epub_publisher = author 188 | epub_copyright = copyright 189 | 190 | # The unique identifier of the text. This can be a ISBN number 191 | # or the project homepage. 192 | # 193 | # epub_identifier = '' 194 | 195 | # A unique identification for the text. 196 | # 197 | # epub_uid = '' 198 | 199 | # A list of files that should not be packed into the epub file. 200 | epub_exclude_files = ['search.html'] 201 | -------------------------------------------------------------------------------- /docs/source/features.rst: -------------------------------------------------------------------------------- 1 | Features 2 | ======== 3 | 4 | Profiling 5 | --------- 6 | 7 | This feature supports capturing a GPU profile for viewing in **Radeon GPU Profiler**. 8 | 9 | .. image:: media/3.0/10_rgp_capture.png 10 | 11 | The **Capture** section has the following items for profiling: 12 | 13 | - **Capture target** - Selects the driver connection that should be profiled when a capture is triggered. 14 | 15 | - **Capture mode** - Displays options for which profiling capture mode should be used 16 | 17 | * **Frame** - Capture draws and dispatches that occur within a frame. 18 | 19 | * **Dispatch** - Capture a number of dispatches. This option uses the *Dispatch Count* value from **Dispatch range** auto capture options. 20 | 21 | - **Capture profile** - Captures a profile and writes to disk. 22 | 23 | - **Enable instruction tracing** - Enables capturing detailed instruction data. 24 | 25 | - **Collect counters** - Enables capturing GPU cache counter data. Systems with an AMD Radeon RX 6000, AMD Radeon RX 7000, or AMD Radeon RX 9000 series GPU will also collect raytracing counter data. 26 | 27 | - **Delay capture** - If this is enabled, pressing the capture profile button or triggering the hotkey will first wait the entered number of milliseconds before capturing a profile. 28 | 29 | 30 | .. NOTE:: Enabling capture of detailed instruction data may adversely affect performance. 31 | 32 | The **Auto capture** section has the following options for profiling: 33 | 34 | - **Auto capture mode**: 35 | * Displays configuration options for auto capturing of profiles. 36 | 37 | * **None** uses the selected capture mode when clicking the **Capture profile** button. 38 | 39 | * **Frame** allows for specifying a specific frame index to trigger capture on. 40 | 41 | * **Dispatch range** allows for setting the start and stop dispatch indices to use during automatic profile capture. 42 | 43 | * **Dispatch timer** allows for specifying the number of dispatches to capture after a specified elapsed time. 44 | 45 | The **Advanced settings** section has the following options for profiling: 46 | 47 | - **SQTT Buffer Size**: 48 | * Defines the size of the buffer where SQTT data will be stored. 49 | * If a profile has missing data, the SQTT buffer size can be increased to potentially remedy the issue. 50 | * If an application experiences graphical corruption, decreasing the SQTT buffer size can potentially remedy the issue. 51 | 52 | - **Enable shader instrumentation** 53 | * Enables support for capturing more detailed shader instrumentation data. 54 | 55 | .. NOTE:: 56 | To reduce the chance of truncated profile data, OpenCL profiling is limited to 10000 dispatches 57 | 58 | Capturing a profile can be achieved by the following: 59 | 60 | * **Click the Capture profile button** 61 | 62 | Clicking the **Capture profile** button from the Profiling UI will capture a frame and write the results to disk. 63 | 64 | * **Use the Ctrl-Alt-C hotkey** 65 | 66 | Using Ctrl-Alt-C default hotkey on Windows or Linux® will capture a frame and write the results to disk. 67 | 68 | This can be configured **before launching an application** by clicking the edit button to the right of the hotkey label and then entering a series of key presses. 69 | 70 | Example output: 71 | 72 | sample-20200908-092653.rgp 73 | 74 | .. NOTE:: 75 | Profiles will be output on disk at the path specified in the **Profiling output path** field shown below. 76 | 77 | .. image:: media/3.0/21_recent_profiles.png 78 | 79 | 80 | Memory Trace 81 | ------------ 82 | 83 | This feature enables capturing a memory trace for viewing in **Radeon Memory Visualizer**. 84 | 85 | .. image:: media/3.0/22_memory_tracing.png 86 | 87 | .. IMPORTANT:: 88 | Memory tracing will have been implicitly started when the application was launched. 89 | 90 | The **Capture** section has the following items for memory tracing: 91 | 92 | - **Capture target** - Selects the driver connection that should be dumped when the dump button is pressed. 93 | 94 | - **Dump trace** - Stops memory tracing for the selected capture target and writes results to disk. 95 | 96 | - **Insert snapshot** - insert user specified identifier to define snapshot in trace. A 97 | snapshot captures a moment in time in much the same way as a photograph. For example, to 98 | spot memory leaks, 2 snapshots can be added; one just before a game level is started after 99 | the menu screens and another snapshot when the game level finishes once the user is back in 100 | the game menus. Theoretically, the game should be in the same state in both cases (in the menus 101 | before and after a game level). 102 | 103 | - **Recently collected traces** - displays any recently collected traces in output directory 104 | 105 | Writing out the memory trace to file can be achieved by one of the following: 106 | 107 | * **Close the running application** 108 | 109 | When the client application terminates, the memory tracing 110 | will stop and the results will be written to disk. 111 | 112 | * **Click the Dump trace button** 113 | 114 | Clicking the **Dump trace** button from the Memory Trace UI will stop 115 | memory tracing and write the results to disk. 116 | 117 | Using either of the above methods to complete memory tracing 118 | will result in a **Radeon Memory Visualizer** trace file being written to disk. 119 | 120 | Example output: 121 | 122 | sample_20200316-143712.rmv 123 | 124 | .. IMPORTANT:: 125 | Once a memory trace has finished either through closing the application or 126 | through clicking the **Dump trace** button. The application **MUST** be 127 | closed and re-launched to start a new memory trace. 128 | 129 | Raytracing 130 | ---------- 131 | 132 | This feature enables capturing a raytracing scene for viewing in **Radeon Raytracing Analyzer**. 133 | 134 | .. image:: media/3.0/23_raytracing.png 135 | 136 | The **Capture** section has the following items for raytracing: 137 | 138 | - **Capture target** - Selects the driver connection that should have its raytracing scene captured when a capture is triggered. 139 | 140 | - **Capture scene** - Captures a scene and writes to disk. 141 | 142 | - **Delay capture** - If this is enabled, pressing the capture scene button or triggering the hotkey will first wait the entered number of milliseconds before capturing. 143 | 144 | - **Collect ray dispatch data** - Captures detailed information about ray dispatches. 145 | 146 | .. NOTE:: 147 | This feature is currently experimental on **Linux** and requires at least 16GB of system memory to work reliably in most cases. 148 | 149 | - **Recently collected scenes** - Displays any recently collected scenes found in the output directory. 150 | 151 | **Ray history** section allows for configuring settings for collecting ray dispatch data 152 | 153 | - **Ray dispatch buffer size**: 154 | * Defines the buffer size in system memory used for allocating ray dispatch data during scene capture. 155 | 156 | Capturing a scene can be achieved by the following: 157 | 158 | * **Click the Capture scene button** 159 | 160 | Clicking the **Capture scene** button from the Raytracing UI will capture a raytracing scene and write the results to disk. 161 | 162 | * **Use the Ctrl-F8 hotkey** 163 | 164 | Using Ctrl-F8 default hotkey on Windows or Linux® will capture a raytracing scene and write the results to disk. 165 | 166 | This can be configured **before launching an application** by clicking the edit button to the right of the hotkey label and then entering a series of key presses. 167 | 168 | Example output: 169 | 170 | sample-20220705-104021.rra 171 | 172 | 173 | Crash Analysis 174 | -------------- 175 | 176 | This feature enables capturing a GPU crash summary using **Radeon GPU Detective**. 177 | 178 | .. image:: media/3.0/24_crash_analysis.png 179 | 180 | .. IMPORTANT:: 181 | The following are requirements for crash analysis feature support 182 | 183 | **OS**: Windows® 10 or Windows® 11 184 | 185 | **GPU supported**: AMD Radeon RX 6000, AMD Radeon RX 7000, or AMD Radeon RX 9000 series GPU 186 | 187 | **Minimum supported driver**: AMD Radeon Adrenalin Software Driver version 23.7.2 188 | 189 | 190 | Before running an application to generate a crash dump, there are 191 | a few settings that can be configured in the capture settings pane shown here: 192 | 193 | - **Directory to store your dumps** - Path on disk where crash dumps are written out. 194 | 195 | - **Automatic crash summary generation** 196 | 197 | For convenience, enabling these options will generate the respective crash dump summaries automatically upon capture. 198 | 199 | - **Display execution marker source** 200 | 201 | If checked, each marker node in the generated summary file's 202 | execution marker tree will contain a tag specifying the source 203 | that generated the marker (such as Application, Driver, etc.). 204 | 205 | - **Expand all execution marker nodes** 206 | 207 | If checked, all execution marker nodes in the marker tree will be expanded. 208 | 209 | The **Analysis options** section lists configuration options: 210 | 211 | - **Enable hardware crash analysis** 212 | 213 | When enabled, RGD collects low-level information about the GPU hardware state 214 | upon crash and augments the information that is presented in the Crash Analysis (.rgd) output 215 | file with meaningful insights. 216 | 217 | Once active, a GPU crash dump will be created once a TDR occurs. 218 | 219 | Example output: 220 | 221 | sample-20230220-103954.rgd 222 | 223 | Right clicking on a dump in the recently collected dumps pane will open a context menu with options to open the 224 | generated crash summaries in the text editor specified in the Radeon Developer Panel settings. If a summary has not been 225 | generated, an option will be present to first generate the summary using the Radeon GPU Detective CLI, then open 226 | the summary. Deleting a dump from this context menu will also remove any summaries that have been generated. 227 | 228 | .. image:: media/3.0/24_crash_analysis_context.png 229 | 230 | .. NOTE:: 231 | 232 | The Radeon GPU Detective executable path must be setup properly in the settings 233 | configuration to generate a crash summary. 234 | 235 | Shown here is a sample crash dump summary: 236 | 237 | .. image:: media/CrashDump_Output.png 238 | 239 | Driver Experiments 240 | ------------------ 241 | 242 | Driver Experiments offer a way to change the behavior and performance characteristics of a game or other graphics 243 | application without modifying its source code or configuration. 244 | They control the low-level behavior of the graphics driver. 245 | This tool exposes some of the driver settings that were 246 | previously only available to AMD engineers who develop the driver, e.g. disabling 247 | support for ray tracing or some optimizations in the shader compiler. Experiments are separate per graphics API 248 | (DirectX 12, Vulkan). Both APIs offer a similar set of experiments, but not all experiments are available for every API. 249 | 250 | .. image:: media/3.0/32_driver_experiments.png 251 | 252 | Experiments may be used as the only feature in Radeon Developer Panel or together with other features. 253 | For example, taking an RGP capture while experiments are activated will allow you to observe how the 254 | experiments influenced the performance of some specific render passes and draw calls. Alternatively, you may 255 | enable Crash Analysis feature and capture an RGD crash dump. Opening files captured with active driver experiments in 256 | their respective tools will display a notification that the file was captured with some driver experiments applied, and 257 | lists their values. 258 | 259 | .. image:: media/3.0/34_driver_experiments_client_banner.png 260 | 261 | Activating driver experiments 262 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 263 | 264 | After driver experiments are activated, the desired test application will need to connect to Radeon Developer Panel 265 | to apply the experiments. Experiments are active only as long as Radeon Developer Panel is running. 266 | Closing the Panel application or restarting the system reverts them to defaults. 267 | 268 | The details pane will contain a description of the state of the selected experiment once an application connects. 269 | A corresponding indicator will also be displayed in the experiments list to the left of experiments' name: 270 | 271 | * Modified 272 | The user has provided an override for the experiment, but it has not yet been applied in a connected application. 273 | 274 | .. image:: media/3.0/35_driver_experiment_modified.png 275 | 276 | * Applied 277 | The user override successfully applied and the driver behavior will be changed. 278 | 279 | .. image:: media/3.0/36_driver_experiment_applied.png 280 | 281 | * Failed to apply 282 | The user override was not accepted by the driver and the driver's behavior will remain unchanged. 283 | 284 | .. image:: media/3.0/37_driver_experiment_failed_apply.png 285 | 286 | * Unsupported 287 | The driver reported that this experiment was not currently supported. If a the experiment was set by the user, the value was not applied in the driver. 288 | 289 | .. image:: media/3.0/38_driver_experiment_unsupported.png 290 | 291 | The user overrides of experiments can be saved to a JSON file using the Export button and 292 | loaded later using the Import button. 293 | 294 | Available driver experiments 295 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 296 | 297 | Features 298 | ******** 299 | 300 | Experiments in this group allow disabling support for some of the hardware features of modern AMD/Radeon GPUs, 301 | which may be useful for debugging. 302 | 303 | **Disable mesh shader support** 304 | 305 | **Disable sampler feedback support** 306 | 307 | **Disable raytracing support** 308 | 309 | **Disable variable rate shading** 310 | 311 | **Disable GPU work graphs support** 312 | 313 | These experiments make it possible to disable support for some of the new GPU hardware features. When activated, 314 | the graphics API exposes no support for the feature, like ``D3D12_FEATURE_DATA_D3D12_OPTIONS7::MeshShaderTier``, 315 | or the equivalent Vulkan extension, like ``VK_EXT_mesh_shader``, as if the GPU doesn’t have the support. 316 | 317 | Applications that don’t require the feature typically then fall back to some other implementation, e.g. using 318 | vertex shaders instead of mesh shaders or using screen-space reflections instead of ray-traced reflections. If 319 | there is a bug in the application code that uses the feature, which makes it crash or return incorrect results, 320 | disabling the feature allows testing without the feature enabled. For example, if an application is crashing and 321 | activating the "Disable raytracing support" experiment alleviates the crash, 322 | it can be surmised that the raytracing code is causing the crashes. 323 | 324 | **Disable low precision support** 325 | 326 | Disables support for 16-bit floating point numbers (half-floats) in shaders when used as minimum precision numbers. 327 | Minimum precision numbers in HLSL, like the ``min16float`` type, allow declaring variables where 16-bit precision is 328 | sufficient. If half-floats are not supported in some operation or if it would yield better performance, the shader 329 | compiler will use a full 32-bit (single precision) float. With this experiment activated, 330 | minimum precision numbers (``D3D12_FEATURE_DATA_D3D12_OPTIONS::MinPrecisionSupport``) are not supported and such 331 | numbers in shaders fall back to using the full 32-bit precision. 332 | 333 | Using half-floats in shaders can improve performance in some cases due to faster calculations and smaller storage 334 | requirements, but it can also be a source of bugs. A 16-bit floating-point number retains only around 3 decimal digits 335 | of precision, can represent integer numbers exactly only up to 2048. Additionally, 16-bit floating points have a maximum 336 | value of 65504, above which they become infinity. This may be enough for calculations on HDR colors or normal vectors, 337 | but it is not sufficient to operate on vertex positions and many other types of data. It is very easy for intermediate 338 | calculations to exceed the maximum value, e.g. in dot product of two vectors. If activating this 339 | experiment fixes the problem of seeing incorrect results of the calculations in shaders, NaN or INF values, then 340 | likely the shader should be modified to use full precision (``float``). It may also indicate a bug in the shader 341 | compiler, although less likely. 342 | 343 | **Disable native 16-bit type support** 344 | 345 | This experiment disables support for explicit 16-bit data types in shaders 346 | (``D3D12_FEATURE_DATA_D3D12_OPTIONS4::Native16BitShaderOpsSupported``) available in Shader Model 6.2, like the 347 | type ``float16_t``. When the experiment is activated, applications cannot use shaders that utilize native 16-bit types, 348 | and they should fall back to some implementation that use full precision numbers. If activating this experiment fixes a 349 | bug, it may indicate the is a bug in the 16-bit version of the shader. Possibly, the precision or range of 16-bit numbers is 350 | insufficient for some calculations. It may also indicate a bug in the shader compiler, although less likely. 351 | 352 | **Disable AMD vendor extensions** 353 | 354 | Activating this experiment disables support for custom AMD extensions to the graphics APIs. In DirectX 12 it means 355 | extensions available through AMD GPU Services (AGS) library (``AGSDX12ReturnedParams::ExtensionsSupported``) are 356 | returned as unsupported. In Vulkan, it means VK\_AMD\_ and VK\_AMDX\_-prefixed device extensions are not available. 357 | 358 | If an application makes use of such custom vendor extensions, this experiment can help with debugging. When the bug is 359 | fixed after activating this experiment, it indicates that the problem may be in the incorrect use of one of these 360 | extensions. 361 | 362 | **Disable compute queue support** 363 | 364 | When this experiment is activated, the Vulkan implementation does not expose compute-only queues. It will be as if 365 | the GPU did not support asynchronous compute queues; for the queue family with ``QUEUE_COMPUTE_BIT`` 366 | but not ``QUEUE_GRAPHICS_BIT`` set ``queueCount`` will be zero. Vulkan applications should typically 367 | be prepared for that and fall back to an implementation that executes its workload on the graphics queue only. 368 | 369 | In DirectX 12 there is no way to expose the lack of support for asynchronous compute queue. When the experiment is 370 | activated, the GPU executes all commands submitted to compute queues on the graphics queue, serialized with the graphics 371 | workload. 372 | 373 | This experiment can be used for debugging problems with asynchronous compute. If activating it fixes the bug, it may 374 | indicate a problem with synchronization or accessing resources shared between the 3D workload (draw calls) executed 375 | on the graphics queue and compute dispatches intended to run in parallel in the compute queue. 376 | 377 | **Disable copy queue support** 378 | 379 | Activating this experiment for DirectX 12 makes all copy commands submitted to the copy queue execute 380 | on the graphics queue instead, which can help in debugging synchronization issues with workloads intended 381 | to run in parallel on multiple queues. 382 | 383 | Optimizations 384 | ************* 385 | 386 | Experiments in this group modify shader compiler and general driver behavior that improves performance. 387 | While optimizations should not change the logic, in some cases disabling them may help in debugging various types 388 | of issues. 389 | 390 | **Disable floating-point optimizations** 391 | 392 | When activated, the compiler skips some of the optimizations typically done on the shader code related to calculations 393 | on floating-point numbers, like fusing MUL + ADD instructions into an FMA instruction. While in general optimizations 394 | should not change the compiler logic, they can change the precision of some operations, so the numerical results would 395 | not be bit-exact to the least significant bits with the unoptimized version. 396 | If activating this experiment fixes a bug (e.g., a discrepancy between numerical results of a position-only versus full 397 | vertex shader), it may indicate that the application relies too much on the precision of the calculations. Changing some 398 | expressions in the shader code may help. It may also indicate a bug in the shader compiler, although less likely. 399 | 400 | **Disable shader compiler optimizations** 401 | 402 | When active, the experiment disables shader compiler optimizations which may result in non-optimal shader code. 403 | This may cause shaders to take longer to run. 404 | 405 | If enabling this experiment fixes a bug, it may indicate the bug is related to timing of individual draw calls. 406 | This may be a problem with synchronization, such as a missing barrier. It may also indicate a bug in the shader 407 | compiler. 408 | 409 | **Disable barrier optimizations** 410 | 411 | This experiment disables some optimizations made by the driver at the level of synchronization and barriers between draw 412 | calls. By default, the driver optimizes command execution as much as possible by inserting fine-grained barriers to 413 | ensure correctness and maximum performance at the same time. For example, a pixel shader may need to wait for the pixel 414 | shader of the previous draw call to finish, but the vertex shader of that draw call can start executing earlier. This 415 | experiment disables some of these optimizations, which may decrease performance. If activating this experiment fixes a 416 | bug, it may indicate a bug in synchronization, like a missing or incorrect barrier. 417 | 418 | **Disable acceleration structure optimizations** 419 | 420 | This experiment disables some of the optimizations made by the driver when building ray tracing acceleration structures, 421 | which may increase their size in memory and decrease the traversal performance in ray tracing. It should not change the 422 | logic. 423 | 424 | If activating this experiment fixes a bug, it can indicate that the application incorrectly handles synchronization 425 | between ray tracing dispatches (e.g. a missing or incorrect barrier). It could also indicate that the application 426 | doesn't correctly handle the increased size required for the acceleration structures or the scratch buffers needed 427 | to build them. It may also indicate a bug in the driver, although less likely. 428 | 429 | **Vertex/hull/… shader wave size** 430 | 431 | AMD RDNA architecture supports 32 or 64 threads per wave. During the compilation of every shader, the shader compiler 432 | will use a heuristic to determine whether to use 32 or 64 threads per wave, with the goal of reaching maximum 433 | performance. This experiment allows enforcing a specific mode of shader compilation for a specific 434 | shader stage (e.g. vertex or pixel shaders) whenever possible. This should not change the logic, but it can impact 435 | performance. 436 | 437 | If a shader uses explicit wave functions (called subgroup functions in Vulkan), like ``WaveReadLaneFirst``, and toggling 438 | this experiment fixes a bug, it can indicate the shader relies on a specific wave size to work correctly, which should 439 | not be the case. It may also indicate a bug in the shader compiler, although less likely. 440 | 441 | The experiment may also be used to compare the performance of a draw call executing the same shader with different wave 442 | sizes. If profiling (e.g. using RGP) shows that the wave size selected by the driver is not optimal for a specific 443 | shader, you can use ``[WaveSize()]`` attribute from Shader Model 6.6 to prepare an optimized version of the shader 444 | with and explicit wave size to be used when possible. 445 | 446 | .. NOTE:: 447 | In certain situations, this experiment has no impact for some shaders due to driver overrides. 448 | You can use a runtime tool (such as Radeon GPU Profiler) to confirm that this experiment has been 449 | activated with the hardware. 450 | 451 | **Disable raytracing shader inlining** 452 | 453 | DXR shaders on AMD GPUs can be compiled in one of two modes. It can be observed in tools like RGP or RRA as: 454 | 455 | * \ 456 | individual ray generation, closest hit, any hit, miss shaders etc. stay separate, get called and 457 | returned from. 458 | * \ 459 | all shaders participating in the ray tracing pipeline are inlined together, which may increase the 460 | time it takes to compile the pipeline state object but may improve the performance when executing this shader. 461 | 462 | The decision is made by the shader compiler based on some heuristics with the goal of reaching maximum performance. 463 | It should not change the logic. This experiment forces the compiler to always choose the Indirect mode. 464 | 465 | If activating this 466 | experiment shortens the time it takes for a game to launch and load while it creates Pipeline State Objects (PSOs), it 467 | indicates that the creation of ray tracing PSOs takes significant amount of this time. For the fastest loading times, 468 | PSO creation should be done in multiple background threads. 469 | 470 | If activating this experiment fixes a bug: a CPU crash or hang on PSO creation, GPU crash on shader execution, 471 | or incorrect results returned, it indicates a bug in the shader compiler. 472 | 473 | **Disable shader cache** 474 | 475 | Shader compilation happens in two stages. 476 | 477 | 1. First, high level shader language (HLSL or GLSL) is compiled to an 478 | intermediate representation independent of the GPU and defined by the graphics API 479 | (DXIL in DirectX 12, SPIR-V in Vulkan). This should happen offline when the application is prepared to release to end 480 | users. 481 | 2. The second stage happens in the graphics driver when a pipeline state object (PSO) is created. The intermediate 482 | representation is then compiled to the assembly (ISA) appropriate for the specific GPU. This typically happens at 483 | runtime (e.g. when a game is launched or loads a level) and can take significant time. To optimize this process, 484 | compiled shaders are cached by the driver. 485 | 486 | This experiment disables the shader cache implemented by the driver. It should not change the logic, but it can impact 487 | the duration of PSO creation. 488 | 489 | If activating this experiment makes the application launch and load much longer, it can 490 | indicate the creation of the application PSOs take significant time that is optimized thanks to the cache, but new users 491 | would experience it the first time they launch the application. Activating this experiment will make PSO 492 | behave like it would on a system that has never run the application before. This can provide a more reliable measurement 493 | of the application startup time with a cold shader cache. 494 | 495 | Safety features 496 | *************** 497 | 498 | Experiments in this group generally offer extra safety features that can decrease performance, but can make the 499 | application more correct and stable. Activating safety features can help expose errors in the code that 500 | could potentially cause instability in an application. 501 | 502 | **Disable color texture compression** 503 | 504 | GPUs utilize internal compression formats for textures. This should not be confused with general data compression file 505 | formats (like ZIP) or algorithms (like Deflate), or with explicit block-compressed texture pixel formats 506 | (like BC6, ASTC). Internal compression formats are lossless, opaque to developers and are used to improve performance. 507 | Internal compression formats typically increase, rather than decrease, texture sizes in memory because additional 508 | space is needed for metadata, Such compression is typically used on render-target and depth-stencil textures. 509 | A decision whether a texture should be compressed is made by the driver based on some heuristics with the goal of 510 | achieving maximum performance. It can be observed in RGP, on the Render/depth targets tab, DCC column. 511 | 512 | Compressed textures may be more sensitive to incorrect data. Textures must be correctly initialized with either the 513 | ``Clear``, ``Copy`` or ``DiscardResource`` operation so that the compression metadata is valid. Not using these 514 | operations causes undefined results, as textures can be created in a place where memory may contain garbage data, 515 | e.g. created as placed in a larger memory heap where another resource existed before, or aliasing memory with some 516 | other resource used in a disjoint period throughout each render frame. Overwriting the whole texture using a shader 517 | as a render target or UAV doesn’t count as proper initialization. In such case, visual artifacts can remain, 518 | or it can even lead to a GPU crash. 519 | 520 | This experiment disables compression of textures other than depth-stencil, typically render targets. If activating this 521 | experiment fixes a bug like a visual artifact visible on the screen, it can indicate incorrect initialization of the 522 | texture – missing ``Clear``, ``Copy``, or a missing or incorrect barrier. 523 | 524 | **Disable depth-stencil texture compression** 525 | 526 | This experiment disables internal compression of depth-stencil textures. If activating it fixes a bug related to 527 | incorrect rendering, it can indicate that there is missing or incorrect initialization of a depth-stencil texture. 528 | 529 | .. NOTE:: 530 | On RDNA 2 cards (AMD Radeon RX 6000 series), in certain situations, this experiment has no impact for some textures 531 | due to driver overrides. You can use a runtime tool (such as Radeon GPU Profiler) to confirm that this experiment 532 | has been activated with the hardware. 533 | 534 | **Zero unbound descriptors** 535 | 536 | This experiment initializes unbound descriptors with zeros. If enabling it fixes a bug, it can indicate that the 537 | application may be accessing an unbound descriptor table. 538 | 539 | **Thread-safe command buffer allocator** 540 | 541 | Command buffer allocator objects are not thread-safe and should only be accessed from one thread at a time. When an 542 | application uses parallel recording of command buffers or multiple threads, it typically uses a separate command 543 | allocator per thread. 544 | 545 | This experiment makes command allocators thread-safe, synchronized internally. If activating it fixes a bug, it can 546 | indicate the bug is related to synchronization between threads that use command allocators and command buffers for 547 | rendering. 548 | 549 | **Force structured buffers as raw** 550 | 551 | A structured buffer defines a stride, which is the number of bytes needed for a single instance of the structure, 552 | or a step to take with a pointer to move to the next structure instance. This parameter is passed when creating a 553 | Shader Resource View (SRV) descriptor for a structured buffer, but the structure of specific size is also declared 554 | in the shader code for that structured buffer to be bound to the specific shader resource slot. These two should match. 555 | If they do not match, the result is undefined and may differ between different GPUs. 556 | 557 | This experiment forces the GPU to use the stride from the shader instead of the descriptor. If activating it fixes a 558 | bug, it may indicate the bug is caused by incorrect declaration of the structured buffer in the application code or in the 559 | shader code. It could also indicate that a raw buffer is being accidentally used instead of a structured buffer. 560 | 561 | **Vertical synchronization** 562 | 563 | Vertical synchronization (V-sync) is a setting commonly offered by games to control the behavior of presenting 564 | frames on the screen. 565 | 566 | **When off**, frames are presented as soon as they are ready (when rendering is finished). It typically increases the 567 | number of frames per second (FPS), makes the GPU busier, up to 100% (if the game is not bound by its CPU workload), 568 | but it can expose an unpleasant visual effect on the screen known as tearing. This mode is good for testing the system 569 | and the game under maximum load, and for performance measurements. 570 | 571 | **When on**, new frames are presented only when the monitor is ready to present them. FPS is then limited to the refresh 572 | rate of the monitor (60 Hz on typical monitors), GPU load is lower, battery usage is lower, as the game is blocked and 573 | waits until a subsequent frame can be rendered and presented. This eliminates the tearing effect and so this mode is good 574 | for normal gaming. 575 | 576 | V-sync is typically controlled by the application. This experiment allows to override it and force it to be on or off. 577 | This allows performing tests with various purposes on applications that don’t offer control over V-sync. For example, 578 | if forcing it on fixes a bug, it may indicate the bug is sensitive to the timing of draw calls and render passes, 579 | which may be caused by incorrect CPU-GPU synchronization of render frames, command buffer submission, present call, etc. 580 | If forcing V-sync on fixes a problem with the whole system crashing or shutting down, it may indicate a problem with 581 | GPU or CPU overheating. 582 | 583 | 584 | 585 | Device Clocks 586 | ------------- 587 | 588 | The Radeon Developer Panel (RDP) allows the developer to select from a 589 | number of clock modes. 590 | 591 | .. image:: media/3.0/17_device_clocks.png 592 | 593 | Normal clock mode will run the GPU as it would normally run your 594 | application. To ensure that the GPU runs within its designed power and 595 | temperature envelopes, it dynamically adjusts the internal clock frequency. 596 | This means that profiles taken of the same application may differ 597 | significantly, making side-by-side comparisons impossible. 598 | 599 | Stable clock mode will run the GPU at a lower, fixed clock rate. Even though 600 | the application may run slower than normal, it will be much easier to compare 601 | profiles of the same application. 602 | 603 | .. NOTE:: 604 | 605 | When capturing an RGP profile, clock modes for the device will be changed to peak during capture. 606 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | Radeon™ Developer Panel 2 | ========================== 3 | 4 | The Radeon Developer Panel is part of a suite of tools that can be used 5 | by developers to optimize DirectX® 12, Vulkan®, OpenCL™ and HIP applications for AMD RDNA™ 6 | hardware. The suite is comprised of the following software: 7 | 8 | - **Radeon Developer Mode Driver** - This is shipped as part of the AMD 9 | public driver and supports the developer mode features 10 | required for profiling and debugging. 11 | 12 | - **Radeon Developer Service (RDS)** - A system tray application that 13 | unlocks the Developer Mode Driver features and supports 14 | communications with high level tools. 15 | 16 | - **Radeon Developer Service - CLI (Headless RDS)** - A console (i.e. 17 | non-GUI) application that unlocks the Developer Mode Driver features 18 | and supports communication with high level tools. 19 | 20 | - **Radeon Developer Panel (RDP)** - A GUI application that allows the 21 | developer to configure driver settings and generate profiles from 22 | DirectX12, Vulkan, OpenCL and HIP applications. 23 | 24 | - **Radeon GPU Profiler (RGP)** - A GUI tool used to visualize and 25 | analyze the profile data. 26 | 27 | - **Radeon GPU Detective (RGD)** - A command line tool that assists developers in post-mortem analysis of GPU crashes. 28 | 29 | - **Radeon Memory Visualizer (RMV)** - A GUI tool used to visualize and analyze 30 | the memory trace data. 31 | 32 | - **Radeon Raytracing Analyzer (RRA)** - A GUI tool used to visualize and analyze 33 | the raytracing data. 34 | 35 | This document describes how the Radeon Developer Panel can be used to capture 36 | a profile, memory trace or a raytracing scene for an application on AMD RDNA graphics hardware. The 37 | Radeon Developer Panel connects to the Radeon Developer Service in 38 | order to collect a profile, trace or scene. 39 | 40 | **RGP documentation:** https://gpuopen.com/manuals/rgp_manual/rgp_manual-index/ 41 | 42 | **RMV documentation:** https://gpuopen.com/manuals/rmv_manual/rmv_manual-index/ 43 | 44 | **RRA documentation:** https://gpuopen.com/manuals/rra_manual/rra_manual-index/ 45 | 46 | **RGD documentation:** https://gpuopen.com/manuals/rgd_manual/rgd_manual-index/ 47 | 48 | .. NOTE:: 49 | By default, the driver allocates a maximum of 75 MB video 50 | memory per Shader Engine to capture RGP profiles. The driver allocates 51 | 300 MB video memory for the single shader engine with instruction tracing enabled. 52 | This can be configured in the capture settings. 53 | 54 | .. toctree:: 55 | :maxdepth: 2 56 | :caption: Contents: 57 | 58 | initial_setup.rst 59 | remote_connections.rst 60 | capture.rst 61 | features.rst 62 | settings.rst 63 | bug_report.rst 64 | radeon_developer_service 65 | known_issues.rst 66 | 67 | Graphics APIs, RDNA hardware, and operating systems 68 | --------------------------------------------------------------------- 69 | 70 | **Supported APIs** 71 | 72 | - DirectX12 73 | 74 | - Vulkan 75 | 76 | \ **Supported RDNA hardware** 77 | 78 | - AMD Radeon RX 9000 series 79 | 80 | - AMD Radeon RX 7000 series 81 | 82 | - AMD Radeon RX 6000 series 83 | 84 | - AMD Radeon RX 5000 series 85 | 86 | - AMD Ryzen™ Processors with Radeon Graphics 87 | 88 | \ **Supported Operating Systems** 89 | 90 | - Windows® 10 91 | 92 | - Windows® 11 93 | 94 | - Ubuntu 22.04 LTS (Vulkan only) 95 | 96 | - Ubuntu 24.04 LTS (Vulkan only) 97 | 98 | Compute APIs, RDNA hardware, and operating systems 99 | -------------------------------------------------------------------- 100 | 101 | **Supported APIs** 102 | 103 | - OpenCL 104 | 105 | - HIP 106 | 107 | \ **Supported RDNA hardware** 108 | 109 | - AMD Radeon RX 9000 series 110 | 111 | - AMD Radeon RX 7000 series 112 | 113 | - AMD Radeon RX 6000 series 114 | 115 | - AMD Radeon RX 5000 series 116 | 117 | - AMD Ryzen Processors with Radeon Graphics 118 | 119 | \ **Supported Operating Systems** 120 | 121 | - Windows® 10 122 | 123 | - Windows® 11 124 | -------------------------------------------------------------------------------- /docs/source/initial_setup.rst: -------------------------------------------------------------------------------- 1 | Initial setup 2 | ============= 3 | 4 | .. IMPORTANT:: 5 | The application you want to profile, trace or capture scenes from must **NOT** already be 6 | running. The panel needs to be configured in advance of starting your 7 | application. 8 | 9 | 1) Start the **RadeonDeveloperPanel(.exe)** on your local system. The 10 | panel will startup up with the Connection tab already highlighted 11 | (see below). 12 | 13 | .. image:: media/3.0/0_connection_page.png 14 | .. 15 | 16 | The connection panel has three main elements: 17 | 18 | - **Connection status** - to the Radeon Developer Service (currently 19 | not connected) 20 | 21 | - **Connection dropdown** - choose a previous connection to connect to. **Local** will always 22 | be available in this list 23 | 24 | - **New connection** - section that allows you specify a new remote connection. New connections 25 | will be added to the connections list 26 | 27 | 2) Connect to a **Local** or **Remote** connection: 28 | 29 | Select an entry from the Connection dropdown, 30 | then click the “Connect” button. This will attempt to establish a connection to a **Radeon Developer Service** 31 | 32 | Note that the red indicator to the left of the “CONNECTION” tab will change to 33 | green to indicate that the connection was successful. 34 | 35 | Connections to applications will timeout after a brief period of no API calls being made. For example, a timeout will likely occur when a 36 | connected application is suspended by a debug breakpoint or if the application is only occasionally refreshing. 37 | Enabling the "Disable client timeout" toggle will stop Radeon Developer Panel disconnecting from inactive clients. 38 | 39 | .. NOTE:: 40 | For Local connections, starting **Radeon Developer Service** is optional. 41 | For Remote Connections, a **Radeon Developer Service** instance must be started on the remote machine (see below) -------------------------------------------------------------------------------- /docs/source/known_issues.rst: -------------------------------------------------------------------------------- 1 | Known Issues 2 | ============ 3 | 4 | Cleanup After a RadeonDeveloperServiceCLI Crash 5 | ----------------------------------------------- 6 | 7 | If the RadeonDeveloperServiceCLI executable crashes on Linux, shared 8 | memory may need to be cleaned up by running the remove_shared_memory.sh 9 | script located in the script folder of the RGP release kit. Run the 10 | script with elevated privileges using sudo. If this fails to work, 11 | try starting the panel with elevated privileges. 12 | 13 | Windows Firewall Blocking Incoming Connections 14 | ---------------------------------------------- 15 | 16 | 1) **Deleting the settings file**. If problems arise with connection or 17 | application histories, these can be resolved by deleting the Radeon 18 | Developer Panel's settings file at: 19 | "C:\\Users\\your\_name\\AppData\\Roaming\\RadeonDeveloperPanel\\settings.ini" 20 | 21 | on Windows. On Linux, the corresponding file is located at: 22 | 23 | "~/.local/share/RadeonDeveloperPanel/settings.ini" 24 | 25 | 2) **“Connection Failure”** error message. This issue is sometimes seen 26 | when running the panel for the very first time. The panel tries to 27 | start the service automatically for local connections and this can 28 | fail. If you see this message try manually starting the 29 | “RadeonDeveloperService(.exe)” and connect again. 30 | 31 | 3) **Remote connection attempts timing out.** When running the Radeon 32 | Developer Service on Windows, the Windows Firewall may attempt to 33 | block incoming connection attempts from other machines. The best 34 | methods of ensuring that remote connections are established correctly 35 | are: 36 | 37 | a. Allow the RDS firewall exception to be created within the Windows 38 | Firewall when RDS is first started. Within the Windows Security 39 | Alert popup, enable the checkboxes that apply for your network 40 | configuration, and click “Allow access”. 41 | 42 | .. image:: media/Firewall_1.png 43 | 44 | a. If “Cancel” was previously clicked in the above step during the first 45 | run, the exception for RDS can still be enabled by allowing it within 46 | the Windows Control Panel firewall settings. Navigate to the “Allow 47 | an app or feature” section, and ensure that the checkbox next to the 48 | RadeonDeveloperService(.exe) entry is checked: 49 | 50 | .. image:: media/Firewall_2.png 51 | 52 | .. image:: media/Firewall_3.png 53 | 54 | a. Alternatively, disable the Windows Firewall entirely will also allow 55 | RDS to be connected to. 56 | 57 | .. NOTE:: 58 | The Windows firewall alert in no way indicates that the Radeon 59 | Developer tools are trying to communicate to an AMD server over the 60 | internet. The Radeon Developer tools do not attempt to connect to a remote 61 | AMD server of any description and do not send personal or system information 62 | over remote connections. The Radeon Developer Panel needs to communicate 63 | with the Radeon Developer Service, which may or may not be on the same 64 | machine, and a connection needs to be made between the two (normally via a 65 | socket). 66 | 67 | Disabling Linux Firewall 68 | ------------------------ 69 | 70 | If the remote machine is running Linux and the **“Connection Failure”** 71 | error message is displayed, the Linux firewall may need to be disabled. 72 | This is done by typing “\ **sudo ufw disable**\ ” in a terminal. The 73 | firewall can be re-enabled after capturing by typing “\ **sudo ufw 74 | enable**\ ”. 75 | 76 | .. _Linux-GPU_clocks-ref: 77 | 78 | Setting GPU clock modes on Linux 79 | -------------------------------- 80 | 81 | Adjusting the GPU clock mode on Linux is accomplished by writing to 82 | /sys/class/drm/card/device/power\_dpm\_force\_performance\_level, 83 | where is the index of the card in question. By default this file is 84 | only modifiable by root, so the application being profiled would have to 85 | be run as root in order for it to modify the clock mode. It is possible 86 | to modify the permissions for the file instead so that it can be written 87 | by unprivileged users. The Radeon Developer Tool Suite package includes the 88 | “\ **scripts/setup.sh**\ ” script which when run as root will set the 89 | GPU clock mode. **Execute this script before running the Radeon Developer 90 | Service and target application,** and the GPU clock mode will be updated 91 | correctly at runtime. 92 | 93 | .. NOTE:: 94 | This script needs to be run each time you reboot 95 | your machine; the file permissions do not survive system reboots. 96 | 97 | Enabling support for RMV tracing on Linux 98 | ----------------------------------------- 99 | 100 | RMV tracing on Linux requires specific kernel tracing features to be enabled. 101 | The **scripts/setup.sh** script file when run as root will setup the necessary kernel tracing components 102 | to support RMV capture. Please run this script prior to launching 103 | **Radeon Developer Service** or **Radeon Developer Panel**. 104 | 105 | Radeon Developer Panel connection issues on Linux 106 | ------------------------------------------------- 107 | 108 | The Radeon Developer Panel may fail to start the Radeon Developer 109 | Service when the Connect button is clicked. If this occurs, manually 110 | start the Radeon Developer Service, select localhost from the Recent 111 | connections list and click the Connect button again. 112 | 113 | .. _DX12-timing-ref: 114 | 115 | Missing Timing Data for DirectX 12 Applications 116 | ----------------------------------------------- 117 | 118 | To collect complete profile datasets for DirectX 12 applications, two 119 | additional actions must be performed: 120 | 121 | 1) The user account in Windows needs to be associated with the 122 | “Performance Log Users” group. 123 | 124 | 2) The following REG_DWORD registry key must be set: 125 | **HKEY_LOCAL_MACHINE\\Software\\AMD\\RadeonTools\\RgpEnableEtw=1** 126 | 127 | If these two privileges aren't configured properly, profiles 128 | collected under the user's account may not include all timing data for 129 | GPU Sync objects. 130 | 131 | A batch file is provided to perform the above two actions 132 | (scripts\\AddUserToGroup.bat). The batch file should be run as 133 | administrator (Right click on file and select “Run as Administrator”). 134 | The script's output is shown below: 135 | 136 | .. image:: media/Bat_1.png 137 | 138 | The actions performed by the batch fie can be undone by running the 139 | batch file with a **-\\-cleanup** command line switch. 140 | 141 | Alternatively, to manually add the active user to the proper group, 142 | follow these steps: 143 | 144 | 1) **Open the Run dialog** by using the Windows Start menu, or through 145 | the Windows + R shortcut. 146 | 147 | a. **Type** "**lusrmgr.msc**" into the Run window, and **click OK**. 148 | 149 | .. image:: media/Run_1.png 150 | 151 | 2) Within the "Local Users and Groups" configuration window that opens, 152 | **select the Groups node**. 153 | 154 | a. **Select the Performance Log Users entry. Right-click and select 155 | Properties**. 156 | 157 | .. image:: media/Users_1.png 158 | 159 | 1) To add the active user to the group, **click the Add... button**. (If 160 | the active user appears within this list, the account is already 161 | configured properly.) 162 | 163 | .. image:: media/Add_User_1.png 164 | 165 | 2) **Type the active user's account name** into the Select Users, 166 | Computers, Service Accounts, or Groups dialog, and **click OK**. 167 | 168 | .. image:: media/Select_User_1.png 169 | 170 | 3) When the user has been added to the group, **restart the machine** 171 | and log back in. RDS should now be configured to collect full timing 172 | information for DirectX 12 applications. 173 | 174 | Radeon Developer Service Port numbers 175 | ------------------------------------- 176 | 177 | .. NOTE:: 178 | When running both the Radeon Developer Panel and the 179 | Radeon Developer Service on the same system the communication between 180 | the two uses pipes, not sockets and ports, so setting the port has no 181 | effect. In this scenario, it is possible to set the service to listen on 182 | a non-default port. Leave the panel on the default port, and connecting 183 | will work fine. 184 | 185 | Problems caused by existing installation of RADV Linux Vulkan driver 186 | -------------------------------------------------------------------- 187 | 188 | Installations of Ubuntu 20.04 or newer may have the RADV open source Vulkan driver installed 189 | by default on the system. As a result, after an amdgpu-pro driver install, 190 | the default Vulkan ICD may be the RADV ICD. 191 | 192 | In order to capture a profile, Vulkan applications must be using the amdgpu-pro Vulkan ICD. 193 | The default Vulkan ICD can be overridden by setting the following environment variable 194 | before launching a Vulkan application: VK_ICD_FILENAMES=/etc/vulkan/icd.d/amd_icd64.json 195 | 196 | Problems caused by the presence of non-AMD GPUs and non-AMD CPUs with integrated graphics 197 | ----------------------------------------------------------------------------------------- 198 | 199 | The presence of non-AMD GPU's and CPU's on your system can cause the failure to generate a profile 200 | or apps to not run at all. 201 | 202 | These problems typically occur with Vulkan apps in systems that have: 203 | 204 | 1) A non-AMD CPU with in integrated non-AMD GPU 205 | 206 | 2) A non-AMD discrete GPU 207 | 208 | Vulkan applications, by default, use GPU 0 which usually maps to the integrated GPU, or in some cases, 209 | the non-AMD discrete GPU. In both cases Vulkan apps will either fail to run, or RGP profiling will not work 210 | (no RGP overlay will be present in these cases). 211 | 212 | To avoid these issues: 213 | 214 | 1) Disable any non-AMD integrated GPU's in the device manager 215 | 2) Disable any non-AMD discrete GPU's in the device manager, and/or physically remove from the system. 216 | -------------------------------------------------------------------------------- /docs/source/media/3.0/0_connection_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/0_connection_page.png -------------------------------------------------------------------------------- /docs/source/media/3.0/10_rgp_capture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/10_rgp_capture.png -------------------------------------------------------------------------------- /docs/source/media/3.0/11_rmv_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/11_rmv_connected.png -------------------------------------------------------------------------------- /docs/source/media/3.0/12_rmv_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/12_rmv_done.png -------------------------------------------------------------------------------- /docs/source/media/3.0/13_preset_hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/13_preset_hamburger.png -------------------------------------------------------------------------------- /docs/source/media/3.0/14_create_preset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/14_create_preset.png -------------------------------------------------------------------------------- /docs/source/media/3.0/15_crash_analysis_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/15_crash_analysis_warning.png -------------------------------------------------------------------------------- /docs/source/media/3.0/16_load_crash_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/16_load_crash_analysis.png -------------------------------------------------------------------------------- /docs/source/media/3.0/17_device_clocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/17_device_clocks.png -------------------------------------------------------------------------------- /docs/source/media/3.0/18_application_filters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/18_application_filters.png -------------------------------------------------------------------------------- /docs/source/media/3.0/19_compute_auto_none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/19_compute_auto_none.png -------------------------------------------------------------------------------- /docs/source/media/3.0/1_connection_remote_ip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/1_connection_remote_ip.png -------------------------------------------------------------------------------- /docs/source/media/3.0/20_blocked_apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/20_blocked_apps.png -------------------------------------------------------------------------------- /docs/source/media/3.0/21_recent_profiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/21_recent_profiles.png -------------------------------------------------------------------------------- /docs/source/media/3.0/22_memory_tracing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/22_memory_tracing.png -------------------------------------------------------------------------------- /docs/source/media/3.0/23_raytracing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/23_raytracing.png -------------------------------------------------------------------------------- /docs/source/media/3.0/24_crash_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/24_crash_analysis.png -------------------------------------------------------------------------------- /docs/source/media/3.0/24_crash_analysis_context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/24_crash_analysis_context.png -------------------------------------------------------------------------------- /docs/source/media/3.0/25_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/25_settings.png -------------------------------------------------------------------------------- /docs/source/media/3.0/26_service_configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/26_service_configuration.png -------------------------------------------------------------------------------- /docs/source/media/3.0/27_system_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/27_system_info.png -------------------------------------------------------------------------------- /docs/source/media/3.0/28_output_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/28_output_log.png -------------------------------------------------------------------------------- /docs/source/media/3.0/29_presets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/29_presets.png -------------------------------------------------------------------------------- /docs/source/media/3.0/2_capture_tab_landing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/2_capture_tab_landing.png -------------------------------------------------------------------------------- /docs/source/media/3.0/30_custom_preset_saving.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/30_custom_preset_saving.png -------------------------------------------------------------------------------- /docs/source/media/3.0/31_theme_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/31_theme_options.png -------------------------------------------------------------------------------- /docs/source/media/3.0/32_driver_experiments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/32_driver_experiments.png -------------------------------------------------------------------------------- /docs/source/media/3.0/34_driver_experiments_client_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/34_driver_experiments_client_banner.png -------------------------------------------------------------------------------- /docs/source/media/3.0/35_driver_experiment_modified.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/35_driver_experiment_modified.png -------------------------------------------------------------------------------- /docs/source/media/3.0/36_driver_experiment_applied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/36_driver_experiment_applied.png -------------------------------------------------------------------------------- /docs/source/media/3.0/37_driver_experiment_failed_apply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/37_driver_experiment_failed_apply.png -------------------------------------------------------------------------------- /docs/source/media/3.0/38_driver_experiment_unsupported.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/38_driver_experiment_unsupported.png -------------------------------------------------------------------------------- /docs/source/media/3.0/3_add_memory_trace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/3_add_memory_trace.png -------------------------------------------------------------------------------- /docs/source/media/3.0/4_existing_applications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/4_existing_applications.png -------------------------------------------------------------------------------- /docs/source/media/3.0/5_api_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/5_api_filter.png -------------------------------------------------------------------------------- /docs/source/media/3.0/6_blocklist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/6_blocklist.png -------------------------------------------------------------------------------- /docs/source/media/3.0/7_system_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/7_system_info.png -------------------------------------------------------------------------------- /docs/source/media/3.0/8_output_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/8_output_log.png -------------------------------------------------------------------------------- /docs/source/media/3.0/9_app_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/3.0/9_app_connected.png -------------------------------------------------------------------------------- /docs/source/media/Add_User_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Add_User_1.png -------------------------------------------------------------------------------- /docs/source/media/Advanced_Mode_App_Workflow_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Advanced_Mode_App_Workflow_1.png -------------------------------------------------------------------------------- /docs/source/media/Application_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Application_1.png -------------------------------------------------------------------------------- /docs/source/media/Bat_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Bat_1.png -------------------------------------------------------------------------------- /docs/source/media/Blocked_apps_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Blocked_apps_1.png -------------------------------------------------------------------------------- /docs/source/media/Clocks_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Clocks_1.png -------------------------------------------------------------------------------- /docs/source/media/Connection_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Connection_1.png -------------------------------------------------------------------------------- /docs/source/media/CrashDump_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/CrashDump_1.png -------------------------------------------------------------------------------- /docs/source/media/CrashDump_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/CrashDump_2.png -------------------------------------------------------------------------------- /docs/source/media/CrashDump_Output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/CrashDump_Output.png -------------------------------------------------------------------------------- /docs/source/media/CrashDump_Workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/CrashDump_Workflow.png -------------------------------------------------------------------------------- /docs/source/media/Firewall_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Firewall_1.png -------------------------------------------------------------------------------- /docs/source/media/Firewall_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Firewall_2.png -------------------------------------------------------------------------------- /docs/source/media/Firewall_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Firewall_3.png -------------------------------------------------------------------------------- /docs/source/media/Global_Workflow_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Global_Workflow_1.png -------------------------------------------------------------------------------- /docs/source/media/Log_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Log_1.png -------------------------------------------------------------------------------- /docs/source/media/MemoryTrace_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/MemoryTrace_01.png -------------------------------------------------------------------------------- /docs/source/media/Paths_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Paths_1.png -------------------------------------------------------------------------------- /docs/source/media/Profiling_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Profiling_1.png -------------------------------------------------------------------------------- /docs/source/media/RDS_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/RDS_1.png -------------------------------------------------------------------------------- /docs/source/media/Raytracing_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Raytracing_1.png -------------------------------------------------------------------------------- /docs/source/media/Run_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Run_1.png -------------------------------------------------------------------------------- /docs/source/media/Select_User_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Select_User_1.png -------------------------------------------------------------------------------- /docs/source/media/System_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/System_1.png -------------------------------------------------------------------------------- /docs/source/media/System_Info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/System_Info.png -------------------------------------------------------------------------------- /docs/source/media/Users_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Users_1.png -------------------------------------------------------------------------------- /docs/source/media/Workflow_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Workflow_1.png -------------------------------------------------------------------------------- /docs/source/media/Workflow_CrashAnalysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Workflow_CrashAnalysis.png -------------------------------------------------------------------------------- /docs/source/media/Workflow_MemoryTrace_Config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Workflow_MemoryTrace_Config.png -------------------------------------------------------------------------------- /docs/source/media/Workflow_Profiling_Config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Workflow_Profiling_Config.png -------------------------------------------------------------------------------- /docs/source/media/Workflow_Profiling_Config_OpenCL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Workflow_Profiling_Config_OpenCL.png -------------------------------------------------------------------------------- /docs/source/media/Workflow_Profiling_Config_OpenCL_AutoCapture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Workflow_Profiling_Config_OpenCL_AutoCapture.png -------------------------------------------------------------------------------- /docs/source/media/Workflow_Profiling_Config_OpenCL_AutoCapture_Timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Workflow_Profiling_Config_OpenCL_AutoCapture_Timer.png -------------------------------------------------------------------------------- /docs/source/media/Workflow_Raytracing_Config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GPUOpen-Tools/radeon_developer_panel/18b51be3c7d8e404135df155eb9eeb3dba4f70a6/docs/source/media/Workflow_Raytracing_Config.png -------------------------------------------------------------------------------- /docs/source/radeon_developer_service.rst: -------------------------------------------------------------------------------- 1 | The Radeon Developer Service 2 | ============================ 3 | 4 | Two versions of the Radeon developer service are provided, one with a 5 | configuration UI and system tray icon, and one designed for use with 6 | headless GPU system where no UI can be supported. 7 | 8 | Radeon Developer Service for desktop developer system 9 | ----------------------------------------------------- 10 | 11 | RadeonDeveloperService(.exe) - Can be used for general use where the 12 | system has a monitor and UI (e.g. desktop development machines). The 13 | Radeon Developer Service includes a configuration window containing 14 | basic service configuration settings and software info. **Double click 15 | the Radeon Developer Service system tray icon** to open the 16 | configuration window, or right-click on the system tray icon and select 17 | 'configure' from the context menu. 18 | 19 | .. image:: media/3.0/26_service_configuration.png 20 | 21 | - **Listen port** - The port that the Radeon Developer Service uses to 22 | listen for incoming connections from a remote Radeon Developer Panel. 23 | **The default port is 27300**. Altering the port will disconnect all 24 | existing sessions. The circular arrows icon to the right of the 25 | Listen port field can be clicked to reset the port to the default 26 | value. 27 | 28 | - **Version info** - Software version information for the Radeon 29 | Developer Service. 30 | 31 | Double click the Radeon Developer Service system tray icon again or 32 | right-click on the system tray icon and select 'configure' from the 33 | context menu to close the configuration window. 34 | 35 | .. IMPORTANT:: 36 | When running both the Radeon Developer Panel and 37 | the Radeon Developer Service on the same system the communication 38 | between the two uses pipes, not sockets and ports, so setting the port 39 | has no effect. 40 | 41 | Radeon Developer Service for headless GPU systems 42 | ------------------------------------------------- 43 | 44 | RadeonDeveloperServiceCLI(.exe) - Command line version for use with 45 | headless GPU systems where no UI can be provided. This version can 46 | also run on a system that has a monitor and UI. 47 | 48 | The following command line options are available for 49 | RadeonDeveloperServiceCLI: 50 | 51 | 1) **-- port ** *Overrides the default listener port used 52 | by the service (27300 is the default).* 53 | 54 | .. NOTE:: 55 | The service will need to be explicitly started 56 | before starting the Radeon Developer Panel. If the service isn't 57 | running, the Radeon Developer Panel will automatically start the UI 58 | version of the Radeon Developer Service, which may not be what is 59 | required. 60 | 61 | -------------------------------------------------------------------------------- /docs/source/remote_connections.rst: -------------------------------------------------------------------------------- 1 | Remote connections 2 | ================== 3 | 4 | 1) Start the **RadeonDeveloperService(.exe)** on the **remote** system (the machine 5 | where the application is to be run). Make a note of the remote system's IP address 6 | (open a command prompt and type 'ipconfig'). 7 | 8 | 2) Start the **RadeonDeveloperPanel(.exe)** on the local system. On the **CONNECTION** 9 | tab, enter the IP address of the **remote** system in the **Host name** and then 10 | click the “Connect” button. 11 | 12 | Optionally a nickname for the connection can be provided. This name will show in parentheses in the Connection dropdown. 13 | 14 | .. image:: media/3.0/1_connection_remote_ip.png -------------------------------------------------------------------------------- /docs/source/settings.rst: -------------------------------------------------------------------------------- 1 | Settings 2 | ======== 3 | 4 | At any time the Radeon Developer Panel settings can be accessed by clicking the gear button in the upper right corner. This will open the 5 | settings pane. 6 | 7 | After capturing a profile, trace or scene from an application, it is often desirable to open the output 8 | file using the associated tool such as **Radeon GPU Profiler**, **Radeon Memory Visualizer**, **Radeon Raytracing Analyzer**, or **Radeon GPU Detective**. 9 | 10 | The settings pane allows for choosing the global path to the tool to be used by Radeon Developer Panel to open 11 | captured profiles, traces and scenes. For convenience, using the **Locate Radeon Developer Tool Suite** button will allow for selection 12 | of a downloaded Radeon Developer Tool Suite package and automatically configure all paths. 13 | 14 | Additionally, the settings pane contains the **Auto open traces** toggle which will cause Radeon Developer Panel to open a captured 15 | profile, trace or scene with the correct tool as soon as it is captured. 16 | 17 | A **Restore Defaults** button allows for resetting the path and auto open settings to their default values. For the paths, this 18 | will reset them to the panel's executable path directory. 19 | 20 | .. image:: media/3.0/25_settings.png 21 | 22 | Theme Options 23 | ************ 24 | 25 | The UI can be configured to apply a theme based on three options: 26 | 27 | * Light 28 | * Dark 29 | * Detect OS (match the current system theme) 30 | 31 | .. image:: media/3.0/31_theme_options.png 32 | -------------------------------------------------------------------------------- /readthedocs.yaml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yaml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | # Set the version of Python and other tools you might need 9 | build: 10 | os: ubuntu-22.04 11 | tools: 12 | python: "3.11" 13 | 14 | # Build documentation in the docs/source directory with Sphinx 15 | sphinx: 16 | configuration: docs/source/conf.py 17 | 18 | # Explicitly set the version of Python and its requirements 19 | python: 20 | install: 21 | - requirements: docs/requirements.txt 22 | --------------------------------------------------------------------------------