Skip to content

Commit d519147

Browse files
committed
Update documentation and source code for RMV v1.13
1 parent bdc5116 commit d519147

File tree

200 files changed

+1022
-624
lines changed

Some content is hidden

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

200 files changed

+1022
-624
lines changed

.clang-format

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ BasedOnStyle: Google
22
IndentWidth: 4
33
UseTab: Never
44
ColumnLimit: 160
5+
56
Language: Cpp
67
AccessModifierOffset: -4
78
BreakBeforeBraces: Custom
89
BraceWrapping:
9-
1010
AfterCaseLabel: true
1111
AfterClass: true
1212
AfterControlStatement: true
@@ -23,7 +23,7 @@ BraceWrapping:
2323
SplitEmptyFunction: true
2424
SplitEmptyRecord: true
2525
SplitEmptyNamespace: true
26-
ConstructorInitializerAllOnOneLineOrOnePerLine : false
26+
ConstructorInitializerAllOnOneLineOrOnePerLine: false
2727
BreakConstructorInitializers: BeforeComma
2828
DerivePointerAlignment: false
2929
IndentCaseLabels: false
@@ -33,14 +33,16 @@ AlignConsecutiveDeclarations: true
3333
AlignEscapedNewlines: Left
3434
AlignTrailingComments: true
3535
AlignOperands: true
36-
AllowShortFunctionsOnASingleLine: false
36+
AllowShortFunctionsOnASingleLine: None
3737
AllowShortIfStatementsOnASingleLine: false
3838
AllowShortLoopsOnASingleLine: false
39-
AllowShortBlocksOnASingleLine: false
39+
AllowShortBlocksOnASingleLine: Never
4040
ReflowComments: false
41-
SortIncludes: false
41+
SortIncludes: CaseSensitive
42+
IncludeBlocks: Preserve
4243
SortUsingDeclarations: false
4344
BinPackArguments: false
4445
BinPackParameters: false
4546
ExperimentalAutoDetectBinPacking: false
46-
AllowAllParametersOfDeclarationOnNextLine: false
47+
AllowAllParametersOfDeclarationOnNextLine: false
48+

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ Buildinfo.properties
1414
external
1515
.vscode
1616
*.aps
17+
.vs/
18+
out/

CMakeLists.txt

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ cmake_minimum_required(VERSION 3.11)
77

88
set(SYSTEM_INFO_BUILD_RDF_INTERFACES ON)
99

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

1314
# Define version information
1415
set(RMV_MAJOR_VERSION 1)
15-
set(RMV_MINOR_VERSION 12)
16+
set(RMV_MINOR_VERSION 13)
1617
if (NOT RMV_BUGFIX_NUMBER)
1718
set(RMV_BUGFIX_NUMBER 0)
1819
endif ()
@@ -23,8 +24,8 @@ string(TIMESTAMP DATE "\"%m/%d/%Y\"")
2324
string(TIMESTAMP YEAR "%Y")
2425
string(TIMESTAMP YEAR_STRING "\"%Y\"")
2526

26-
configure_file("${CMAKE_SOURCE_DIR}/Buildinfo.properties.in" "${CMAKE_SOURCE_DIR}/Buildinfo.properties")
27-
configure_file("${CMAKE_SOURCE_DIR}/source/frontend/util/version.h.in" "${CMAKE_SOURCE_DIR}/source/frontend/util/version.h")
27+
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/Buildinfo.properties.in" "${CMAKE_CURRENT_SOURCE_DIR}/Buildinfo.properties")
28+
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/source/frontend/util/version.h.in" "${CMAKE_CURRENT_SOURCE_DIR}/source/frontend/util/version.h")
2829

2930
# Add cmake utilities
3031
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
@@ -46,14 +47,14 @@ ENDIF()
4647

4748
# As default for RMV, include the debug status in filename - but not the platform bitness
4849
set (CMAKE_DEBUG_POSTFIX -d)
49-
set (CMAKE_RELEASE_POSTFIX)
50+
set (CMAKE_RELEASE_POSTFIX )
5051

5152
# Add for CentOS compiler warning
5253
add_definitions(-DJSON_SKIP_UNSUPPORTED_COMPILER_CHECK)
5354

54-
include_directories("${PROJECT_SOURCE_DIR}/external/")
55-
include_directories("${PROJECT_SOURCE_DIR}/external/qt_common/")
56-
include_directories("${PROJECT_SOURCE_DIR}/external/third_party/")
55+
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/external/")
56+
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/external/qt_common/")
57+
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/external/third_party/")
5758

5859
# Global compiler options
5960
IF(WIN32)
@@ -94,10 +95,19 @@ MACRO(SOURCE_GROUP_BY_FOLDER target)
9495
ENDIF (files)
9596
ENDMACRO(SOURCE_GROUP_BY_FOLDER)
9697

97-
add_subdirectory(external/qt_common qt_common)
98-
add_subdirectory(external/rdf/imported/zstd)
99-
add_subdirectory(external/rdf/rdf)
100-
add_subdirectory(external/system_info_utils)
98+
if (NOT TARGET QtUtils)
99+
add_subdirectory(external/qt_common qt_common)
100+
endif()
101+
102+
if (NOT TARGET amdrdf)
103+
add_subdirectory(external/rdf/imported/zstd)
104+
add_subdirectory(external/rdf/rdf)
105+
endif()
106+
107+
if (NOT TARGET system_info)
108+
add_subdirectory(external/system_info_utils)
109+
endif()
110+
101111
add_subdirectory(source/parser parser)
102112
add_subdirectory(source/backend backend)
103113
add_subdirectory(source/frontend frontend)
@@ -119,20 +129,22 @@ ENDIF(WIN32)
119129
## Copy Documentation and Samples to output directory. Note - this target is intentionally not included in
120130
## the default project build. It needs to be explicitly built as a separate project
121131

122-
set(DOCS_OUTPUT_DIR ${CMAKE_BINARY_DIR})
132+
if(NOT APPLE)
133+
set(DOCS_OUTPUT_DIR ${CMAKE_BINARY_DIR})
134+
endif()
123135

124136
# group sphinx source files into a sphinx folder
125-
file(GLOB SPHINX_DOC_FILES ${SPHINX_DOC_FILES} ${CMAKE_SOURCE_DIR}/documentation/source/*.rst)
126-
set (SPHINX_DOC_MAIN ${CMAKE_SOURCE_DIR}/documentation/source/conf.py)
137+
file(GLOB SPHINX_DOC_FILES ${SPHINX_DOC_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/documentation/source/*.rst)
138+
set (SPHINX_DOC_MAIN ${CMAKE_CURRENT_SOURCE_DIR}/documentation/source/conf.py)
127139
set (ALL_SPHINX_FILES ${SPHINX_DOC_FILES} ${SPHINX_DOC_MAIN})
128140
source_group("sphinx" FILES ${ALL_SPHINX_FILES})
129141

130142
# group release documents into a release_docs folder
131143
set (RELEASE_DOCS_IN_ROOT
132-
${CMAKE_SOURCE_DIR}/README.md
133-
${CMAKE_SOURCE_DIR}/RELEASE_NOTES.txt
134-
${CMAKE_SOURCE_DIR}/NOTICES.txt
135-
${CMAKE_SOURCE_DIR}/LICENSE.txt
144+
${CMAKE_CURRENT_SOURCE_DIR}/README.md
145+
${CMAKE_CURRENT_SOURCE_DIR}/RELEASE_NOTES.txt
146+
${CMAKE_CURRENT_SOURCE_DIR}/NOTICES.txt
147+
${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt
136148
)
137149
set (RELEASE_DOCS ${RELEASE_DOCS_IN_ROOT})
138150
source_group("release_docs" FILES ${RELEASE_DOCS})
@@ -148,25 +160,25 @@ if(SPHINX_EXECUTABLE)
148160
# this ensures the sphinx docs are built everytime you ask to build the Documentation target
149161
# Sphinx has proper dependency checking, so this works as expected.
150162
# Once built, clean up any unneeded files.
151-
add_custom_target(Documentation ALL SOURCES ${ALL_SPHINX_FILES} ${RELEASE_DOCS} DEPENDS sphinx_output)
163+
add_custom_target(RMVDocumentation ALL SOURCES ${ALL_SPHINX_FILES} ${RELEASE_DOCS} DEPENDS sphinx_output)
152164
add_custom_command(MAIN_DEPENDENCY ${SPHINX_DOC_MAIN} OUTPUT sphinx_output
153165
COMMAND ${CMAKE_COMMAND} -E echo "building Sphinx documentation"
154-
COMMAND ${SPHINX_EXECUTABLE} ${CMAKE_SOURCE_DIR}/documentation/source ${DOCS_OUTPUT_DIR}/help/rmv/. -t ${SPHINX_OPTION}
166+
COMMAND ${SPHINX_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/documentation/source ${DOCS_OUTPUT_DIR}/help/rmv/. -t ${SPHINX_OPTION}
155167
COMMAND ${CMAKE_COMMAND} -E remove_directory ${DOCS_OUTPUT_DIR}/help/rmv/.doctrees
156168
)
157169
install(DIRECTORY ${CMAKE_BINARY_DIR}/help DESTINATION . COMPONENT apps)
158170
else()
159171
message(WARNING "SPHINX_EXECUTABLE (sphinx-build) is not found! Documentation will not be built!")
160172
# If the sphinx binary isn't found, then just create the Documentation project with only the release docs in it.
161-
add_custom_target(Documentation ALL SOURCES ${ALL_SPHINX_FILES} ${RELEASE_DOCS})
173+
add_custom_target(RMVDocumentation ALL SOURCES ${ALL_SPHINX_FILES} ${RELEASE_DOCS})
162174
endif()
163175

164-
add_custom_command(TARGET Documentation POST_BUILD
176+
add_custom_command(TARGET RMVDocumentation POST_BUILD
165177
COMMAND ${CMAKE_COMMAND} -E echo "copying Documentation to output directory"
166178
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RELEASE_DOCS_IN_ROOT} ${DOCS_OUTPUT_DIR}/.
167179
COMMAND ${CMAKE_COMMAND} -E echo "copying Samples to output directory"
168180
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOCS_OUTPUT_DIR}/samples
169-
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_SOURCE_DIR}/samples/sample_trace.rmv ${DOCS_OUTPUT_DIR}/samples/sample_trace.rmv
181+
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/samples/sample_trace.rmv ${DOCS_OUTPUT_DIR}/samples/sample_trace.rmv
170182
)
171183

172184
install(FILES
@@ -184,6 +196,7 @@ if (WIN32)
184196
install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION . COMPONENT apps)
185197
endif (WIN32)
186198

199+
187200
# CPack packaging
188201

189202
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
@@ -192,6 +205,7 @@ set(CPACK_COMPONENTS_GROUPING IGNORE)
192205
set(CPACK_ARCHIVE_APPS_FILE_NAME "RadeonMemoryVisualizer_${RMV_MAJOR_VERSION}.${RMV_MINOR_VERSION}.${RMV_BUGFIX_NUMBER}.${RMV_BUILD_NUMBER}")
193206
set(CPACK_ARCHIVE_DEBUG_FILE_NAME "RadeonMemoryVisualizer-PDB_${RMV_MAJOR_VERSION}.${RMV_MINOR_VERSION}.${RMV_BUGFIX_NUMBER}.${RMV_BUILD_NUMBER}")
194207

208+
195209
include(CPack)
196210

197211
cpack_add_component(apps

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ The Radeon Memory Visualizer (RMV) is a software tool that will allow users to a
3131
* AMD Radeon RX 7000 series
3232
* AMD Radeon RX 6000 series
3333
* AMD Radeon RX 5000 series
34-
* AMD Ryzen™ Processors with Radeon Graphics
34+
* AMD Ryzen™ Processors with AMD RDNA™ Architecture Graphics
3535

3636
## Supported Operating Systems
3737
* Windows® 10
@@ -42,9 +42,8 @@ The Radeon Memory Visualizer (RMV) is a software tool that will allow users to a
4242
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.
4343

4444
## Required hardware for SAM (Smart access memory) support
45-
* AMD Radeon RX 7000 series
46-
* AMD Radeon RX 6000 series
47-
* AMD Ryzen 5000 and higher series processors with Radeon Graphics
45+
* AMD Radeon RX 6000 series or higher
46+
* AMD Ryzen 5000 and higher series processors with AMD RDNA Architecture Graphics
4847

4948
## Build instructions
5049
See [BUILD.md](BUILD.md) for more details.

RELEASE_NOTES.txt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
Radeon™ Memory Visualizer V1.12 03/11/2025
1+
Radeon™ Memory Visualizer V1.13 06/17/2025
22
------------------------------------------
33

4-
V1.12 Changes
4+
V1.13 Changes
55
------------------------------------
6-
1) Support for AMD Radeon RX 9000 series GPUs
7-
2) New options to delete all snapshots or a selection of snapshots.
8-
3) Improved performance when loading snapshots for traces containing aliased resources.
9-
4) Bug/stability fixes.
6+
1) Optimize performance for the Allocation overview pane, helpful when allocations contain thousands of resources and/or aliasing is heavily used.
7+
2) Allow resource properties to be copied to the clipboard in the Resource details pane.
8+
3) Bug/stability fixes.
109

1110
Known Issues
1211
------------------------------------
@@ -26,6 +25,13 @@ Known Issues
2625
Release Notes History
2726
------------------------------------
2827

28+
V1.12 Changes
29+
------------------------------------
30+
1) Support for AMD Radeon RX 9000 series GPUs.
31+
2) New options to delete all snapshots or a selection of snapshots.
32+
3) Improved performance when loading snapshots for traces containing aliased resources.
33+
4) Bug/stability fixes.
34+
2935
V1.11 Changes
3036
------------------------------------
3137
1) Dark mode user interface support, allowing the user to choose between a light and dark theme (or have RMV follow the OS theme setting).

build/dependency_map.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
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.2.0", True],
24+
github_tools + "qt_common" : ["../external/qt_common", "v4.3.0", True],
2525
github_tools + "system_info_utils" : ["../external/system_info_utils", "v2.1", True],
2626
github_tools + "update_check_api" : ["../external/update_check_api", "v2.1.1", True],
2727
github_root + "GPUOpen-Drivers/libamdrdf" : ["../external/rdf", "v1.4.0", True],

build/fetch_dependencies.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@
66
## \brief Script to fetch all external git and/or downloadable dependencies
77
## needed to build the project.
88
##
9-
## fetch_dependencies.py (--internal)
10-
##
11-
## If --internal is specified, then any additional dependencies required for internal builds will also
12-
## be checked out.
9+
## fetch_dependencies.py
1310
##
1411
## Each git repo will be updated to the commit specified in the "gitMapping" table.
1512
##=============================================================================

build/pre_build.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
parser.add_argument("--no-qt", action="store_true", help="build a headless version (not applicable for all products)")
7070
parser.add_argument("--build-number", default="0", help="specify the build number, primarily to be used by build machines to produce versioned builds")
7171
parser.add_argument("--update", action="store_true", help="Force fetch_dependencies script to update all dependencies")
72-
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 PreBuild.py script)")
72+
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)")
7373
parser.add_argument("--build", action="store_true", help="build all supported configurations on completion of prebuild step")
7474
parser.add_argument("--build-jobs", default="16", help="number of simultaneous jobs to run during a build (default = 16)")
7575
parser.add_argument("--analyze", action="store_true", help="perform static analysis of code on build (currently VS2017 only)")
@@ -292,7 +292,6 @@ def generate_config(config):
292292
if sys.platform == "darwin":
293293
cmake_args.extend(["-DNO_APP_BUNDLE=" + str(args.no_bundle)])
294294

295-
296295
if args.vscode:
297296
# Generate data into VSCode Settings file
298297

@@ -368,7 +367,7 @@ def generate_config(config):
368367

369368
cmake_args = ["cmake", "--build", build_dir, "--parallel", args.build_jobs]
370369

371-
cmake_args_docs = ["cmake", "--build", build_dir, "--target", "Documentation", "--parallel", args.build_jobs]
370+
cmake_args_docs = ["cmake", "--build", build_dir, "--target", "RMVDocumentation", "--parallel", args.build_jobs]
372371
elif sys.platform == "win32":
373372
build_dir = cmake_output_dir
374373

@@ -378,7 +377,7 @@ def generate_config(config):
378377
cmake_args.append("/p:CodeAnalysisRuleSet=NativeMinimumRules.ruleset")
379378
cmake_args.append("/p:RunCodeAnalysis=true")
380379

381-
cmake_args_docs = ["cmake", "--build", build_dir, "--config", config, "--target", "Documentation", "--", "/m:" + args.build_jobs]
380+
cmake_args_docs = ["cmake", "--build", build_dir, "--config", config, "--target", "RMVDocumentation", "--", "/m:" + args.build_jobs]
382381

383382
p = subprocess.Popen(cmake_args, cwd=cmake_output_dir, stderr=subprocess.STDOUT)
384383
p.wait()
@@ -393,7 +392,6 @@ def generate_config(config):
393392
p.wait()
394393
sys.stdout.flush()
395394

396-
397395
if (args.package):
398396
if sys.platform == "win32":
399397
cmake_args = ["cpack", "-G", "ZIP"]

documentation/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Defining requirements for docs
22
sphinx==5.3.0
33
sphinx_rtd_theme==1.1.1
4-
readthedocs-sphinx-search==0.1.1
4+
readthedocs-sphinx-search==0.3.2

documentation/source/compare_windows.rst

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -41,39 +41,3 @@ both snapshots, the base snapshot will be used.
4141
.. image:: media/compare/memory_leak_finder_1.png
4242

4343

44-
Vulkan resource naming
45-
----------------------
46-
Pipelines, images and buffers can be given unique names and these names will
47-
show up in the RMV UI. The Vulkan extension VK_EXT_debug_utils can be used for this.
48-
49-
For more information, see the document:
50-
51-
https://www.lunarg.com/wp-content/uploads/2018/05/Vulkan-Debug-Utils_05_18_v1.pdf
52-
53-
specifically the section "Naming Objects"
54-
55-
DirectX 12 resource naming
56-
--------------------------
57-
Memory traces for DirectX applications captured with the Radeon Developer Panel
58-
can include unique names for resources like heaps, buffers and textures. Names can be assigned to
59-
DirectX resources using the ``ID3D12Object::SetName()`` method.
60-
For more information, please review the Microsoft DirectX 12 documentation.
61-
62-
Calling the ``SetName()``
63-
method results in ETW (Event Tracing for Windows) events being emitted and picked
64-
up by the Panel. This resource naming information is then included in the RMV trace
65-
file.
66-
67-
Due to the asynchronous nature of the event tracing, memory events that happen a short time before the process exit
68-
may show up incorrectly in RMV in terms of naming, as well as
69-
marking and filtering out implicit heaps (created for committed resources)
70-
and implicit buffers (that D3D12 runtime creates automatically for every explicitly created heap).
71-
To overcome this problem, it is recommended to introduce a delay of few seconds
72-
between memory events of interest and the process exit.
73-
74-
Viewing resource names
75-
----------------------
76-
The resource names will show up in the RMV UI in the resource list pane, for example:
77-
78-
.. image:: media/vk_resource_naming_1.png
79-

0 commit comments

Comments
 (0)