Skip to content

Commit

Permalink
Update documentation for RMV v1.6 release
Browse files Browse the repository at this point in the history
  • Loading branch information
ahosier committed Apr 27, 2023
1 parent 5b12668 commit f5180e2
Show file tree
Hide file tree
Showing 13 changed files with 65 additions and 77 deletions.
80 changes: 30 additions & 50 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
### Download Source code

Clone the project radeon_memory_visualizer from github.com

```bash
git clone https://github.com/GPUOpen-Tools/radeon_memory_visualizer.git
```

### Building on Windows
As a preliminary step, make sure that you have the following installed on your system:
Expand All @@ -13,14 +14,14 @@ As a preliminary step, make sure that you have the following installed on your s
* Qt® 5 or above (5.15.2 is the default and recommended).
* Visual Studio® 2015 or above (2019 is the default).

Qt V5.15.2 can be installed using the Qt online installer available from the Qt 5.15.2 release page here: https://www.qt.io/blog/qt-5.15.2-released
As an alternative, the Qt 5.12.6 offline installer can be used here: https://download.qt.io/archive/qt/5.12/5.12.6/
Qt V5.15.2 can be installed using the Qt online installer available from the Qt 5.15.2 release page [here][qt-online].
As an alternative, the Qt 5.12.6 offline installer can be used [here][qt-offline].
Qt should be installed to the default location (C:\Qt\Qt5.xx.x).
Be sure to select msvc2017/msvc2019 64-bit during Qt installation, depending on the compiler you decide to use.
A reboot is required after Qt is installed.

CMake can be downloaded from (https://cmake.org/download/).
Python (V3.x) can be downloaded from (https://www.python.org/). To build the documentation from Visual Studio, the Sphinx Python Document Generator is needed.
CMake can be downloaded from [here](https://cmake.org/download/).
Python (V3.x) can be downloaded from [here](https://www.python.org/). To build the documentation from Visual Studio, the Sphinx Python Document Generator is needed.
This can be installed once Python is installed, as follows:
* Open a command prompt and navigate to the scripts folder in the python install folder. Then type these 2 commands:
* pip install -U sphinx
Expand All @@ -38,7 +39,7 @@ The Release and Debug builds of RMV will be available in the build/release and b

### Building on Ubuntu
Required dependencies can be installed as follows:

```bash
sudo apt-get update
sudo apt-get install build-essential python3 chrpath
sudo apt-get install python3-pip
Expand All @@ -48,60 +49,39 @@ sudo apt-get install git
sudo apt-get install python3-sphinx
sudo apt-get install libxcb-xinerama0
sudo apt-get install mesa-common-dev libglu1-mesa-dev

Qt V5.15.2 can be installed using the Qt online installer available from the Qt 5.15.2 release page here: https://www.qt.io/blog/qt-5.15.2-released
As an alternative, the Qt 5.12.6 offline installer can be used here: https://download.qt.io/archive/qt/5.12/5.12.6/ (the .run file) and installed
```
Qt V5.15.2 can be installed using the Qt online installer available from the Qt 5.15.2 release page [here][qt-online].
As an alternative, the Qt 5.12.6 offline installer can be used [here][qt-offline] (the .run file) and installed
to ~/Qt/Qt5.12.6 (the default of ~/Qt5.12.6 will not work).

XCB libraries are required for Qt v5.15.x (they are not needed for older Qt versions). By default, the CMake configuration will attempt to copy
these files from the Qt lib folder. If these files are installed elsewhere on the system or an older version of Qt is being used to build RMV,
the --disable-extra-qt-lib-deploy pre_build.py script argument may be used. This will prevent the build configuration scripts from attempting to copy
the libraries in the post build step. If needed, the XCB library files (libxcb*) can be obtained from the /lib folder of the Radeon Developer Tool
Suite download found at https://gpuopen.com/tools/.
Suite download found [here](https://gpuopen.com/tools/).

Run the python pre_build.py in the build folder.

$ python3 pre_build.py

```bash
python3 pre_build.py
```
Or run the pre_build.py script with the -qt option to specify another version of Qt (also use the --disable-extra-qt-lib-deploy flag since the XCB
libraries aren't needed). For example:

$ python3 pre_build.py --qt 5.12.6 --disable-extra-qt-lib-deploy

```bash
python3 pre_build.py --qt 5.12.6 --disable-extra-qt-lib-deploy
```
The pre_build.py script will construct the output folders and build the necessary makefiles.
To build the release build, use:

$ make -j5 -C linux/make/release

```bash
make -j5 -C linux/make/release
```
Similarly for the debug build, use:

$ make -j5 -C linux/make/debug

The pre_build.py script should only need to be used when adding or removing source files.

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

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

Visual Studio, DirectX and Windows are registered trademarks of Microsoft Corporation in the US and other jurisdictions.

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

Python is a registered trademark of the PSF. The Python logos (in several variants) are use trademarks of the PSF as well.

CMake is a registered trademark of Kitware, Inc.

Qt and the Qt logo are registered trademarks of the Qt Company Ltd and/or its subsidiaries worldwide.


© 2020-2022 Advanced Micro Devices, Inc. All rights reserved.
```bash
make -j5 -C linux/make/debug
```
Alternatively, building can be done directly from the prebuild script with the --build option
```bash
python3 pre_build.py --build
```

[qt-online]: https://www.qt.io/blog/qt-5.15.2-released
[qt-offline]: https://download.qt.io/archive/qt/5.12/5.12.6/
2 changes: 1 addition & 1 deletion License.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2017-2022 Advanced Micro Devices, Inc.
Copyright (c) 2017-2023 Advanced Micro Devices, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions NOTICES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


nlohmann-json v3.2.0 (MIT)
Copyright (c) 2013-2018 Niels Lohmann
nlohmann-json v3.9.1 (MIT)
Copyright (c) 2013-2020 Niels Lohmann

MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ The Radeon Memory Visualizer (RMV) is a software tool that will allow users to a
## Supported Operating Systems
* Windows® 10
* Windows® 11
* Ubuntu 20.04 LTS (Vulkan only)
* Ubuntu 22.04 LTS (Vulkan only)

Note: Before running RDP and capturing an RMV memory trace on Linux, be sure to make the necessary configuration changes by running the RDP setup.sh script each time the machine is rebooted. For more information, see the RDP documentation.
Expand Down Expand Up @@ -89,4 +88,4 @@ CMake is a registered trademark of Kitware, Inc.
Qt and the Qt logo are registered trademarks of the Qt Company Ltd and/or its subsidiaries worldwide.


© 2020-2022 Advanced Micro Devices, Inc. All rights reserved.
© 2020-2023 Advanced Micro Devices, Inc. All rights reserved.
31 changes: 18 additions & 13 deletions Release_Notes.txt
Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
Radeon™ Memory Visualizer V1.5 12-14-2022
Radeon™ Memory Visualizer V1.6 04-26-2023
-----------------------------------------

V1.5 Changes
V1.6 Changes
------------------------------------
1) Keyboard shortcuts added for all panes on the Welcome and Settings lists. Some keys have also been remapped to avoid conflict with the Adrenaline software. See the documentation or keyboard shortcuts pane for details.
2) Bug fixes.
1) Additional parameters added to the resource history table in the resource details pane.
2) Improved Device configuration reporting with newer trace files, including CPU and driver information.
3) Bug/stability fixes.

Known Issues
------------------------------------

(1a) More than a single active device at a time within a single application is not supported. In this case, only the first device will be traced.
(1b) More than a single Vulkan/DX12 process at a time is not supported. Only the first started application will be traced.
(2) In the Snapshots|Resource details pane, Physical memory mapped events may be shown before virtual allocate events.
(3) Some of the Pane navigation shortcuts may conflict with the keyboard shortcuts used by the Radeon Settings (such as ALT-R). It is recommended to remap the Radeon settings so they don't conflict.
(4) Some UI elements do not rescale properly when the OS's DPI scale settings are dynamically changed, or when dragging RMV between two monitors with different DPI scales. Close and re-open RMV to view at proper sizes.
(5) Running multiple instances of the Radeon Developer Panel is not supported.
(6) Sparse texture are not fully supported.
(7) When tracing an application that uses a launcher, or an application that creates multiple devices, it is possible that more than one trace file will be written to disk. In the case of the launcher, adding the launcher's executable name to the Blocked applications list in the Radeon Developer Panel should prevent multiple trace files. Restarting the Radeon Developer Panel may be required before attempting to trace again.
(8) If a memory dump is created by shutting down the application being traced and there are a large number of resource names, some names may not be included in the RMV file. The work-around is to use the Dump trace button in the Radeon Developer Panel and wait for the button to be disabled before shutting down the application. This gives the buffered names a chance to be processed.
(9) The Shader core clock frequency and Video memory clock frequency for memory traces captured on Linux may be incorrectly displayed as 0.
(10) The Device name may be blank for memory traces captured on Linux with some APUs.
(11) Installations of Ubuntu 20.04 or newer may have the RADV open source Vulkan® driver installed by default on the system. As a result, after an amdgpu-pro driver install, the default Vulkan ICD may be the RADV ICD. In order to capture a memory trace, Vulkan applications must be using the amdgpu-pro Vulkan ICD. The default Vulkan ICD can be overridden by setting the following environment variable before launching a Vulkan application: VK_ICD_FILENAMES=/etc/vulkan/icd.d/amd_icd64.json
(3) Some UI elements do not rescale properly when the OS's DPI scale settings are dynamically changed, or when dragging RMV between two monitors with different DPI scales. Close and re-open RMV to view at proper sizes.
(4) Running multiple instances of the Radeon Developer Panel is not supported.
(5) Sparse texture are not fully supported.
(6) When tracing an application that uses a launcher, or an application that creates multiple devices, it is possible that more than one trace file will be written to disk. In the case of the launcher, adding the launcher's executable name to the Blocked applications list in the Radeon Developer Panel should prevent multiple trace files. Restarting the Radeon Developer Panel may be required before attempting to trace again.
(7) If a memory dump is created by shutting down the application being traced and there are a large number of resource names, some names may not be included in the RMV file. The work-around is to use the Dump trace button in the Radeon Developer Panel and wait for the button to be disabled before shutting down the application. This gives the buffered names a chance to be processed.
(8) The Shader core clock frequency and Video memory clock frequency for memory traces captured on Linux may be incorrectly displayed as 0.
(9) The Device name may be blank for memory traces captured on Linux with some APUs.
(10) Installations of Ubuntu 20.04 or newer may have the RADV open source Vulkan® driver installed by default on the system. As a result, after an amdgpu-pro driver install, the default Vulkan ICD may be the RADV ICD. In order to capture a memory trace, Vulkan applications must be using the amdgpu-pro Vulkan ICD. The default Vulkan ICD can be overridden by setting the following environment variable before launching a Vulkan application: VK_ICD_FILENAMES=/etc/vulkan/icd.d/amd_icd64.json

Release Notes History
------------------------------------

V1.5 Changes
------------------------------------
1) Keyboard shortcuts added for all panes on the Welcome and Settings lists. Some keys have also been remapped to avoid conflict with the Adrenaline software. See the documentation or keyboard shortcuts pane for details.
2) Bug fixes.

V1.4.1 Changes
------------------------------------
1) Linux capture support (requires driver version 22.10 or higher).
Expand Down
4 changes: 2 additions & 2 deletions documentation/source/allocation_overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ Again, the resources will have a stippled effect if they are aliased.
Filtering by preferred heap is provided so that only resources in the specified
preferred heaps are shown.

The coloring mode can be changed using the 'color by .. ' combo box, which will
The coloring mode can be changed using the "**color by ..**" combo box, which will
color the resources and allocations by various parameters, for example, resource
usage, and the preferred heap type.

The allocations can be sorted using the sort combo box at the top. Sorting is
currently based on allocation size, allocation Id, allocation age or resource
count (the number of resources in the allocation). Another combo box to the
left allows the sort to be in ascending or decending order.
left allows the sort to be in ascending or descending order.

Normally, allocations are sized relative to the largest allocations. Sometimes
this makes smaller allocations difficult to see. The 'Normalize allocations'
Expand Down
2 changes: 1 addition & 1 deletion documentation/source/carousel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ in the "Other" category.
.. image:: media/snapshot/carousel_resource_types.png

The **Virtual memory** shows how much memory has resources bound to it. Unbound
memory is effectively usused so should be minimized as much as possible. Sometimes
memory is effectively unused so should be minimized as much as possible. Sometimes
due to alignment issues this is not possible but if there is a lot of unbound
memory, this will be seen in the *Allocation overview* pane for each allocation.

Expand Down
6 changes: 3 additions & 3 deletions documentation/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,17 @@

# General information about the project.
project = u'Radeon Memory Visualizer'
copyright = u'2018-2022, Advanced Micro Devices, Inc. All rights reserved.'
copyright = u'2018-2023, Advanced Micro Devices, Inc. All rights reserved'
author = u'AMD Developer Tools'

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = u'1.5.0'
version = u'1.6.0'
# The full version, including alpha/beta/rc tags.
release = u'1.5.0'
release = u'1.6.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
2 changes: 1 addition & 1 deletion documentation/source/heap_overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The requested bar graph shows how much of that heap was requested by the
application. Just because an application requests memory doesn't automatically
mean the application gets it. If the application requests too much memory,
a warning message is displayed. The bar is also color coded to show whether
the memory type is oversubscibed or is close to being oversubscribed.
the memory type is oversubscribed or is close to being oversubscribed.

The 'total size' bar shows the total amount of physical memory in the heap.

Expand Down
4 changes: 2 additions & 2 deletions documentation/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Supported graphics APIs, RDNA and GCN hardware, and operating systems

- Windows® 10/11

- Ubuntu® 22.04
- Ubuntu® 22.04 LTS (Vulkan only)

Radeon Memory Visualizer - Quick Start
======================================
Expand Down Expand Up @@ -252,4 +252,4 @@ Microsoft is a registered trademark of Microsoft Corporation in the US and other
Windows is a registered trademark of Microsoft Corporation in the US and other jurisdictions.


© 2018-2022 Advanced Micro Devices, Inc. All rights reserved.
© 2018-2023 Advanced Micro Devices, Inc. All rights reserved.
Binary file modified documentation/source/media/device_config_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified documentation/source/media/snapshot/resource_details_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions documentation/source/resource_details.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,7 @@ why the resource memory is in a different place than requested (maybe it was
made resident at some point and then paged out).

.. image:: media/snapshot/resource_details_1.png

Not all events have all the parameters listed in the table. In this case, the
entry will be marked as 'n/a' - not applicable. For example, the physical memory
address isn't applicable for a virtual allocation event.

0 comments on commit f5180e2

Please sign in to comment.