Skip to content

Commit 7976216

Browse files
committed
GPA 4.3 Updates
1 parent 76db050 commit 7976216

File tree

301 files changed

+41916
-140869
lines changed

Some content is hidden

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

301 files changed

+41916
-140869
lines changed

BUILD.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
#### Prerequisites
99
* Python 3.6 or newer which can be installed from https://www.python.org/.
10-
* Vulkan SDK (optional)
1110
* CMake 3.25 and newer which can be installed from https://cmake.org/download/ or your package manager.
1211
* On Windows, this can also be installed using:
1312
* `winget install cmake`
@@ -65,6 +64,7 @@ Additional switches that can be used with the pre_build.py script:
6564
--skipdocs: Does not generate build files for documentation
6665
--skipexamples: Does not generate build files for GPA examples
6766
--cmakecmd="CMD": Override the "cmake" command with "CMD"
67+
--runtests="all": Run all tests
6868

6969
By default the project will not build the generated CMake project (Although you can with `--build`).
7070

CMakeLists.txt

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
## Copyright (C) 2018-2025 Advanced Micro Devices, Inc. All rights reserved. ##
1+
## Copyright (C) 2018-2026 Advanced Micro Devices, Inc. All rights reserved. ##
22

33
cmake_minimum_required(VERSION 3.25)
44
set(GPA_CMAKE_MODULES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build/cmake_modules)
55

66
set(GPA_MAJOR_VERSION 4)
7-
set(GPA_MINOR_VERSION 2)
7+
set(GPA_MINOR_VERSION 3)
88
set(GPA_UPDATE_VERSION 0)
99

1010
if(NOT DEFINED build)
@@ -21,9 +21,11 @@ include(${GPA_CMAKE_MODULES_DIR}/utils.cmake)
2121
include(${GPA_CMAKE_MODULES_DIR}/common.cmake)
2222
include(${GPA_CMAKE_MODULES_DIR}/fetch_dependencies.cmake)
2323

24-
set(CMAKE_CXX_STANDARD 17)
24+
set(CMAKE_CXX_STANDARD 20)
2525
set(CMAKE_CXX_STANDARD_REQUIRED ON)
2626
set(CMAKE_CXX_EXTENSIONS OFF)
27+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
28+
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "Embedded")
2729

2830
if(NOT ${skiptests} AND NOT TARGET gtest)
2931
enable_testing()
@@ -32,33 +34,42 @@ if(NOT ${skiptests} AND NOT TARGET gtest)
3234
set(BUILD_GMOCK OFF)
3335
set(INSTALL_GTEST OFF)
3436
add_subdirectory(external/googletest EXCLUDE_FROM_ALL SYSTEM)
35-
if (MSVC)
36-
target_compile_options(gtest PRIVATE
37-
"$<$<CONFIG:RELEASE>:/MT>"
38-
"$<$<CONFIG:DEBUG>:/MTd>"
39-
)
40-
endif()
4137
endblock()
4238
endif()
4339

4440
add_subdirectory(external/device_info)
4541
add_subdirectory(external/tsingleton)
46-
if (WIN32)
47-
add_subdirectory(external/adl)
48-
add_subdirectory(external/adl_util)
49-
endif()
5042

5143
if(NOT ${skipdocs})
5244
add_subdirectory(documentation/sphinx)
5345
endif()
5446

47+
if (NOT skipvulkan)
48+
block()
49+
add_subdirectory(external/Vulkan-Headers EXCLUDE_FROM_ALL SYSTEM)
50+
add_subdirectory(source/third_party/AmdVkExt SYSTEM)
51+
endblock()
52+
endif()
53+
54+
if (WIN32)
55+
add_subdirectory(source/third_party/AmdDxExt SYSTEM)
56+
endif()
57+
58+
# Only apply warnings to code we own
59+
if (MSVC)
60+
add_compile_options(/W4 /WX)
61+
else()
62+
add_compile_options(-Wall -Werror)
63+
endif()
64+
5565
add_subdirectory(source)
5666

5767
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
5868
set(CPACK_COMPONENTS_GROUPING IGNORE)
5969

6070
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api" DESTINATION ${GPA_INSTALL_INCLUDEDIR} COMPONENT GPUPerfAPI)
61-
install(FILES LICENSE.txt NOTICES.txt DESTINATION ${GPA_INSTALL_PREFIX} COMPONENT GPUPerfAPI)
71+
install(FILES LICENSE.txt DESTINATION ${GPA_INSTALL_PREFIX} COMPONENT GPUPerfAPI)
72+
install(FILES NOTICES.txt DESTINATION ${GPA_INSTALL_PREFIX} COMPONENT GPUPerfAPI)
6273

6374
# Create the archive's suffix (ie: <GPUPerfAPI>[-Android|-Linux]-<version>.[zip|tgz])
6475
set(ARCHIVE_SUFFIX "")
@@ -83,7 +94,9 @@ set(CPACK_PACKAGE_DIRECTORY ${GPA_OUTPUT_DIR})
8394
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
8495

8596
set(CPACK_ARCHIVE_GPUPERFAPI_FILE_NAME "GPUPerfAPI${ARCHIVE_SUFFIX}")
97+
set(CPACK_ARCHIVE_GPATESTKIT_FILE_NAME "GPATestKit${ARCHIVE_SUFFIX}")
8698

8799
include(CPack)
88100

89101
cpack_add_component(GPUPerfAPI)
102+
cpack_add_component(GPATestKit)

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,14 @@ It was discovered that the improvements introduced in Vega, RDNA, and RDNA2 arch
174174
| CS | | | | | | CS |
175175

176176
## Known Issues
177-
### GpaGetDeviceMaxWaveSlots may report an incorrect number with DX11 APIs.
178-
DX11 may report incorrect values on drivers older than Adrenalin `25.8.1`.
177+
178+
### Unable to set clock mode on Windows after Nth time (N ~= 50)
179+
After a large number of consecutive profiling sessions (typically around 50), the GPU Performance API (GPA) may become unable to configure the GPU clock mode on Windows systems.
180+
181+
This behavior has been traced to an issue in the AMD Windows kernel‑mode driver. The only known workaround is to restart the system when this condition occurs.
182+
183+
### Intermittent TDR Events on RDNA4 GPUs
184+
During profiling on AMD RDNA4‑based graphics hardware, users may encounter sporadic Timeout Detection and Recovery (TDR) events. AMD is actively investigating the root cause and working on a fix.
179185

180186
### GPA doesn't support MESA on Linux
181187
GPA is only compatible with AMD's Pro and Open Source drivers.

0 commit comments

Comments
 (0)