Skip to content

Commit 6b6b3fd

Browse files
committed
RMV v1.15 release
1 parent 54b2c08 commit 6b6b3fd

369 files changed

Lines changed: 1433 additions & 671 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,39 @@
11
#######################################################################################################################
2-
### Copyright (c) 2019-2025 Advanced Micro Devices, Inc. All rights reserved.
2+
### Copyright (c) 2019-2026 Advanced Micro Devices, Inc. All rights reserved.
33
### \author AMD Developer Tools Team
44
#######################################################################################################################
55

66
cmake_minimum_required(VERSION 3.11)
77

8+
set(RDF_ENABLE_CXX_BINDINGS ON)
9+
set(RDF_STATIC ON)
810
set(SYSTEM_INFO_BUILD_RDF_INTERFACES ON)
911

10-
1112
## Specify the top level name of the project - this will define the solution name for Visual Studio
1213
project(RMV)
1314

1415
# Define version information
1516
set(RMV_MAJOR_VERSION 1)
16-
set(RMV_MINOR_VERSION 14)
17+
set(RMV_MINOR_VERSION 15)
1718
if (NOT RMV_BUGFIX_NUMBER)
1819
set(RMV_BUGFIX_NUMBER 0)
1920
endif ()
2021
if (NOT RMV_BUILD_NUMBER)
2122
set(RMV_BUILD_NUMBER 0)
2223
endif ()
24+
set(RMV_VERSION "${RMV_MAJOR_VERSION}.${RMV_MINOR_VERSION}.${RMV_BUGFIX_NUMBER}.${RMV_BUILD_NUMBER}")
2325
string(TIMESTAMP DATE "\"%m/%d/%Y\"")
2426
string(TIMESTAMP YEAR "%Y")
2527
string(TIMESTAMP YEAR_STRING "\"%Y\"")
2628

29+
if (PACKAGE_SUFFIX)
30+
set(PACKAGE_SUFFIX "_${PACKAGE_SUFFIX}")
31+
else()
32+
set(PACKAGE_SUFFIX "")
33+
endif()
34+
35+
set(RMV_PACKAGE_VERSION "${ADT_INTERNAL_POSTFIX}_${RMV_VERSION}${PACKAGE_SUFFIX}")
36+
2737
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Buildinfo.properties.in" "${CMAKE_CURRENT_SOURCE_DIR}/Buildinfo.properties")
2838
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/source/frontend/util/version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/source/frontend/util/version.h")
2939

@@ -32,9 +42,6 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
3242
include(devtools_qt_helper)
3343
include(dev_tools)
3444

35-
option(RDF_ENABLE_CXX_BINDINGS "Allow usage of C++ interface for RDF library" ON)
36-
option(RDF_STATIC "Build RDF as a static library" ON)
37-
3845
## For RMV we only care about the Debug and Release configuration types
3946
set(CMAKE_CONFIGURATION_TYPES Debug Release)
4047

@@ -95,13 +102,15 @@ MACRO(SOURCE_GROUP_BY_FOLDER target)
95102
ENDIF (files)
96103
ENDMACRO(SOURCE_GROUP_BY_FOLDER)
97104

105+
set(UPDATE_CHECK_API_HEADLESS OFF)
106+
add_subdirectory(external/update_check_api)
107+
98108
if (NOT TARGET QtUtils)
99109
add_subdirectory(external/qt_common qt_common)
100110
endif()
101111

102112
if (NOT TARGET amdrdf)
103-
add_subdirectory(external/rdf/imported/zstd)
104-
add_subdirectory(external/rdf/rdf)
113+
add_subdirectory(external/rdf)
105114
endif()
106115

107116
if (NOT TARGET system_info)
@@ -130,9 +139,7 @@ ENDIF(WIN32)
130139
## Copy Documentation and Samples to output directory. Note - this target is intentionally not included in
131140
## the default project build. It needs to be explicitly built as a separate project
132141

133-
if(NOT APPLE)
134-
set(DOCS_OUTPUT_DIR ${CMAKE_BINARY_DIR})
135-
endif()
142+
set(DOCS_OUTPUT_DIR ${CMAKE_BINARY_DIR})
136143

137144
# group sphinx source files into a sphinx folder
138145
file(GLOB SPHINX_DOC_FILES ${SPHINX_DOC_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/documentation/source/*.rst)
@@ -197,15 +204,19 @@ if (WIN32)
197204
install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION . COMPONENT apps)
198205
endif (WIN32)
199206

200-
201207
# CPack packaging
202208

203209
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
204210
set(CPACK_COMPONENTS_GROUPING IGNORE)
205211

206-
set(CPACK_ARCHIVE_APPS_FILE_NAME "RadeonMemoryVisualizer_${RMV_MAJOR_VERSION}.${RMV_MINOR_VERSION}.${RMV_BUGFIX_NUMBER}.${RMV_BUILD_NUMBER}")
207-
set(CPACK_ARCHIVE_DEBUG_FILE_NAME "RadeonMemoryVisualizer-PDB_${RMV_MAJOR_VERSION}.${RMV_MINOR_VERSION}.${RMV_BUGFIX_NUMBER}.${RMV_BUILD_NUMBER}")
212+
set(CPACK_PACKAGE_NAME "RadeonMemoryVisualizer")
213+
set(CPACK_PACKAGE_FILE_NAME "RadeonMemoryVisualizer${RMV_PACKAGE_VERSION}")
208214

215+
set(CPACK_ARCHIVE_APPS_FILE_NAME "RadeonMemoryVisualizer${RMV_PACKAGE_VERSION}")
216+
set(CPACK_ARCHIVE_DEBUG_FILE_NAME "RadeonMemoryVisualizer-PDB${RMV_PACKAGE_VERSION}")
217+
218+
# Run a post-build CPack script to reshape apps package with top-level directory
219+
set(CPACK_POST_BUILD_SCRIPTS "${CMAKE_SOURCE_DIR}/cmake/cpack_post_script.cmake")
209220

210221
include(CPack)
211222

@@ -216,4 +227,3 @@ cpack_add_component(debug
216227
DISPLAY_NAME "Debug Symbols"
217228
DESCRIPTION "Debug Symbols")
218229

219-

LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2017-2025 Advanced Micro Devices, Inc.
3+
Copyright (c) 2017-2026 Advanced Micro Devices, Inc.
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ The Radeon Memory Visualizer (RMV) is a software tool that will allow users to a
3636
* AMD Ryzen™ Processors with AMD RDNA™ Architecture Graphics
3737

3838
## Supported Operating Systems
39-
* Windows® 10
4039
* Windows® 11
4140
* Ubuntu® 24.04 LTS (Vulkan only)
4241
* With the introduction of 25.20-based Linux drivers, the AMDVLK driver is no longer included in the amdgpu-pro driver package. This is a result of the AMDVLK open-source project being discontinued as mentioned [here](https://github.com/GPUOpen-Drivers/AMDVLK/discussions/416). Instead, the RADV open-source Vulkan® driver is installed by default. Consequently, the Radeon Developer Panel does not support capturing data from Vulkan applications when using these newer driver releases. To analyze Linux Vulkan workloads with Radeon GPU Profiler (RGP), Radeon Raytracing Analyzer (RRA), or Radeon Memory Visualizer (RMV), users can opt for a 25.10-based driver. Alternatively, analysis can be performed using the data capture mechanism integrated within the RADV driver, although this method is not supported by the Radeon Developer Panel. For more information on configuring RADV, refer to the environment variable documentation, specifically the [MESA_VK_TRACE_* environment variables](https://docs.mesa3d.org/envvars.html#envvar-MESA_VK_TRACE) which can be utilized for enabling and configuring tracing.
@@ -84,4 +83,4 @@ CMake is a registered trademark of Kitware, Inc.
8483
Qt and the Qt logo are registered trademarks of the Qt Company Ltd and/or its subsidiaries worldwide.
8584

8685

87-
© 2020-2025 Advanced Micro Devices, Inc. All rights reserved.
86+
© 2020-2026 Advanced Micro Devices, Inc. All rights reserved.

RELEASE_NOTES.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
Radeon™ Memory Visualizer V1.14
1+
Radeon™ Memory Visualizer V1.15
22
-------------------------------
33

4-
V1.14 Changes
4+
V1.15 Changes
55
------------------------------------
6-
1) UI support for work graph backing memory.
7-
2) Bug/stability fixes.
6+
1) Option to view memory as binary or decimal.
7+
2) Dimension, mip level and format parameters added to the resource tables for texture resources.
8+
3) Mip level slider added to resource tables.
9+
4) Allow resource tables to be saved to disk.
10+
5) Bug/stability fixes.
811

912
Known Issues
1013
------------------------------------
@@ -25,6 +28,11 @@ Known Issues
2528
Release Notes History
2629
------------------------------------
2730

31+
V1.14 Changes
32+
------------------------------------
33+
1) UI support for work graph backing memory.
34+
2) Bug/stability fixes.
35+
2836
V1.13 Changes
2937
------------------------------------
3038
1) Optimize performance for the Allocation overview pane, helpful when allocations contain thousands of resources and/or aliasing is heavily used.

build/dependency_map.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! python3
22
##=============================================================================
3-
## Copyright (c) 2020-2025 Advanced Micro Devices, Inc. All rights reserved.
3+
## Copyright (c) 2020-2026 Advanced Micro Devices, Inc. All rights reserved.
44
## \author AMD Developer Tools Team
55
## \file
66
## \brief List of all external dependencies.
@@ -21,10 +21,10 @@
2121
# Define a set of dependencies that exist as separate git projects.
2222
# each git dependency has a desired directory where it will be cloned - along with a commit to checkout
2323
git_mapping = {
24-
github_tools + "qt_common" : ["../external/qt_common", "v4.4.0", True],
25-
github_tools + "system_info_utils" : ["../external/system_info_utils", "v2.1", True],
26-
github_tools + "update_check_api" : ["../external/update_check_api", "v2.1.1", True],
24+
github_tools + "qt_common" : ["../external/qt_common", "v4.5.0", True],
25+
github_tools + "system_info_utils" : ["../external/system_info_utils", "v2.3", True],
26+
github_tools + "update_check_api" : ["../external/update_check_api", "v2.1.2", True],
2727
github_root + "GPUOpen-Drivers/libamdrdf" : ["../external/rdf", "v1.4.2", True],
28-
github_root + "nlohmann/json" : ["../external/third_party/json", "v3.9.1", True],
28+
github_root + "nlohmann/json" : ["../external/third_party/json", "v3.11.2", True],
2929
github_root + "catchorg/Catch2" : ["../external/third_party/catch2", "v2.13.6", True],
3030
}

build/fetch_dependencies.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! python3
22
##=============================================================================
3-
## Copyright (c) 2020-2025 Advanced Micro Devices, Inc. All rights reserved.
3+
## Copyright (c) 2020-2026 Advanced Micro Devices, Inc. All rights reserved.
44
## \author AMD Developer Tools Team
55
## \file
66
## \brief Script to fetch all external git and/or downloadable dependencies

build/pre_build.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! python3
22
##=============================================================================
3-
## Copyright (c) 2020-2025 Advanced Micro Devices, Inc. All rights reserved.
3+
## Copyright (c) 2020-2026 Advanced Micro Devices, Inc. All rights reserved.
44
## \author AMD Developer Tools Team
55
## \file
66
## \brief Script to perform all necessary pre build steps. This includes:
@@ -69,6 +69,7 @@
6969
parser.add_argument("--clean", action="store_true", help="delete any directories created by this script")
7070
parser.add_argument("--no-qt", action="store_true", help="build a headless version (not applicable for all products)")
7171
parser.add_argument("--build-number", default="0", help="specify the build number, primarily to be used by build machines to produce versioned builds")
72+
parser.add_argument("--package-suffix", default=None, help="specify a suffix to be added to the package name generated by CPack")
7273
parser.add_argument("--update", action="store_true", help="Force fetch_dependencies script to update all dependencies")
7374
parser.add_argument("--output", default=output_root, help="specify the output location for generated cmake and build output files (default = OS specific subdirectory of location of pre_build.py script)")
7475
parser.add_argument("--build", action="store_true", help="build all supported configurations on completion of prebuild step")
@@ -273,13 +274,16 @@ def generate_config(config):
273274
elif args.toolchain == "2017":
274275
cmake_args.extend(["-Tv141"])
275276

276-
277277
if sys.platform.startswith('linux'):
278278
if args.qt_system:
279279
cmake_args.extend(["-DQT_SYSTEM:BOOL=TRUE"])
280280

281281
cmake_args.extend(["-DRMV_BUILD_NUMBER=" + str(args.build_number)])
282282

283+
# If a package suffix is provided, pass it through to CMake/CPack
284+
if args.package_suffix:
285+
cmake_args.extend(["-DPACKAGE_SUFFIX=" + str(args.package_suffix)])
286+
283287
cmake_args.extend(["-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=" + release_output_dir])
284288
cmake_args.extend(["-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=" + release_output_dir])
285289
cmake_args.extend(["-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=" + debug_output_dir])
@@ -402,7 +406,7 @@ def generate_config(config):
402406
if sys.platform == "win32":
403407
cmake_args = ["cpack", "-G", "ZIP"]
404408
else:
405-
cmake_args = ["cpack", "-G", "TGZ"]
409+
cmake_args = ["cpack", "-G", "TGZ", "-D", "CPACK_ARCHIVE_FILE_EXTENSION=tgz"]
406410

407411
p = subprocess.Popen(cmake_args, cwd=build_dir, stderr=subprocess.STDOUT)
408412
p.wait()

cmake/cpack_post_script.cmake

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Post-build CPack script to reshape component archives to include a top-level directory
2+
3+
set(_folder_name "${CPACK_ARCHIVE_APPS_FILE_NAME}")
4+
set(_is_tgz FALSE)
5+
set(_is_zip FALSE)
6+
7+
# Use CPACK_PACKAGE_FILES to find the apps archive for this packaging pass.
8+
# With CPACK_ARCHIVE_COMPONENT_INSTALL ON and CPACK_COMPONENTS_GROUPING IGNORE,
9+
# this script is called once per component, so we must skip passes that don't
10+
# include the apps archive to avoid reprocessing an already-reshaped archive.
11+
# NAME_WLE strips all extensions (e.g. "foo.tar.gz" -> "foo"), correctly
12+
# handling the double-extension used by the TGZ generator on Linux.
13+
set(_apps_archive "")
14+
foreach(_pkg_file IN LISTS CPACK_PACKAGE_FILES)
15+
get_filename_component(_pkg_stem "${_pkg_file}" NAME_WLE)
16+
if (_pkg_stem STREQUAL _folder_name)
17+
set(_apps_archive "${_pkg_file}")
18+
break()
19+
endif()
20+
endforeach()
21+
22+
if (_apps_archive STREQUAL "")
23+
message(STATUS "Post-packaging: apps archive not in this pass, skipping.")
24+
return()
25+
endif()
26+
27+
if (_apps_archive MATCHES "\\.zip$")
28+
set(_is_zip TRUE)
29+
else()
30+
set(_is_tgz TRUE)
31+
endif()
32+
33+
message(STATUS "Post-packaging: Setting archive top-level directory to '${_folder_name}'")
34+
35+
# _out_dir = _CPack_Packages/Linux/TGZ etc.
36+
set(_out_dir "${CPACK_TEMPORARY_DIRECTORY}/..")
37+
38+
# Create top-level directory
39+
set(_repackage_dir "${_out_dir}/${_folder_name}")
40+
message(STATUS "Creating ${_repackage_dir}")
41+
file(REMOVE_RECURSE "${_repackage_dir}")
42+
file(MAKE_DIRECTORY "${_repackage_dir}")
43+
44+
# Extract using cmake -E tar (gz) or zip
45+
message(STATUS "Extracting ${CPACK_GENERATOR} to '${_repackage_dir}'")
46+
if (_is_zip)
47+
execute_process(
48+
COMMAND "${CMAKE_COMMAND}" -E tar xf "${_apps_archive}" --format=zip
49+
WORKING_DIRECTORY "${_repackage_dir}"
50+
RESULT_VARIABLE _x_res)
51+
else()
52+
execute_process(
53+
COMMAND "${CMAKE_COMMAND}" -E tar xzf "${_apps_archive}"
54+
WORKING_DIRECTORY "${_repackage_dir}"
55+
RESULT_VARIABLE _x_res)
56+
endif()
57+
if (NOT _x_res EQUAL 0)
58+
message(WARNING "Failed to extract ${_apps_archive}: code ${_x_res}")
59+
return()
60+
endif()
61+
62+
# Remove the original archive
63+
message(STATUS "Removing original '${_apps_archive}'")
64+
file(REMOVE "${_apps_archive}")
65+
66+
# Create new archive
67+
message(STATUS "Creating new ${CPACK_GENERATOR} '${_apps_archive}'")
68+
if (_is_zip)
69+
execute_process(
70+
COMMAND "${CMAKE_COMMAND}" -E tar cf "${_apps_archive}" "${_folder_name}" --format=zip
71+
WORKING_DIRECTORY "${_out_dir}"
72+
RESULT_VARIABLE _c_res)
73+
else()
74+
execute_process(
75+
COMMAND "${CMAKE_COMMAND}" -E tar czf "${_apps_archive}" "${_folder_name}"
76+
WORKING_DIRECTORY "${_out_dir}"
77+
RESULT_VARIABLE _c_res)
78+
endif()
79+
if (NOT _c_res EQUAL 0)
80+
message(WARNING "Failed to create reshaped archive ${_apps_archive}: code ${_c_res}")
81+
return()
82+
endif()
83+

cmake/dev_tools.cmake

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#######################################################################################################################
2-
### Copyright (c) 2019-2025 Advanced Micro Devices, Inc. All rights reserved.
2+
### Copyright (c) 2019-2026 Advanced Micro Devices, Inc. All rights reserved.
33
### \author AMD Developer Tools Team
44
#######################################################################################################################
55

@@ -15,7 +15,7 @@ endif ()
1515
function(devtools_target_options name)
1616

1717
set_target_properties(${name} PROPERTIES
18-
CXX_STANDARD 17
18+
CXX_STANDARD 20
1919
CXX_STANDARD_REQUIRED ON)
2020

2121
get_target_property(target_type ${name} TYPE)
@@ -48,7 +48,11 @@ function(devtools_target_options name)
4848
# Disable warnings about deprecated features
4949
# This happens when using later versions of Qt than RDP defaults to.
5050
/wd4996
51+
52+
# Enable control flow guard
53+
/guard:cf
5154
)
55+
target_link_options(${name} PRIVATE /GUARD:CF)
5256
else ()
5357

5458
message(FATAL_ERROR "Compiler ${CMAKE_CXX_COMPILER_ID} is not supported!")

cmake/devtools_qt_helper.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#######################################################################################################################
2-
### Copyright (c) 2019-2025 Advanced Micro Devices, Inc. All rights reserved.
2+
### Copyright (c) 2019-2026 Advanced Micro Devices, Inc. All rights reserved.
33
### @author AMD Developer Tools Team
44
#######################################################################################################################
55

0 commit comments

Comments
 (0)