Skip to content

Commit 442361e

Browse files
committed
Update system info reader and support files
1 parent 88a338a commit 442361e

File tree

8 files changed

+682
-26
lines changed

8 files changed

+682
-26
lines changed

CMakeLists.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#######################################################################################################################
2-
### Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
2+
### Copyright (c) 2022-2024 Advanced Micro Devices, Inc. All rights reserved.
33
#######################################################################################################################
44

55
cmake_minimum_required(VERSION 3.16)
@@ -25,6 +25,13 @@ option(SYSTEM_INFO_BUILD_RDF_INTERFACES "Build with rdf interfaces for read and
2525
if (WIN32)
2626
# wmi library
2727
add_subdirectory(source/third_party/wmi)
28+
29+
if (MSVC)
30+
target_compile_options(wmi
31+
PRIVATE
32+
"/wd4244" # disable conversion warnings
33+
)
34+
endif()
2835
endif ()
2936

3037
# System Info reader/writer
@@ -47,4 +54,8 @@ if (SYSTEM_INFO_ENABLE_PACKAGING)
4754
cpack_add_component(system_info_api
4855
DISPLAY_NAME "System Info API"
4956
DESCRIPTION "System info API for use by applications needing to parse system info chunks.")
57+
58+
cpack_add_component(driver_overrides_api
59+
DISPLAY_NAME "Driver Overrides API"
60+
DESCRIPTION "Driver Overrides API for use by applications needing to parse DriverOverrides chunk.")
5061
endif ()

source/CMakeLists.txt

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,31 @@
11
#######################################################################################################################
2-
### Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
2+
### Copyright (c) 2022-2024 Advanced Micro Devices, Inc. All rights reserved.
33
#######################################################################################################################
44

55
project(system_info)
66

77
add_library(${PROJECT_NAME} STATIC
88
definitions.h
99
system_info_reader.h
10-
system_info_reader.cpp)
10+
system_info_reader.cpp
11+
driver_overrides_definitions.h
12+
driver_overrides_reader.h
13+
driver_overrides_reader.cpp)
1114
set_target_properties(${PROJECT_NAME} PROPERTIES
1215
CXX_STANDARD 17
1316
CXX_STANDARD_REQUIRED ON)
1417

1518
if (SYSTEM_INFO_BUILD_RDF_INTERFACES)
1619
target_compile_definitions(${PROJECT_NAME} PUBLIC -DSYSTEM_INFO_ENABLE_RDF)
20+
target_compile_definitions(${PROJECT_NAME} PUBLIC -DDRIVER_OVERRIDES_ENABLE_RDF)
1721
target_link_libraries(${PROJECT_NAME} PUBLIC amdrdf)
1822
endif ()
1923

24+
# Needed for ETW reporting
25+
if (WIN32)
26+
target_link_libraries(${PROJECT_NAME} PUBLIC Netapi32 Secur32)
27+
endif()
28+
2029
target_include_directories(${PROJECT_NAME}
2130
PUBLIC . ./third_party/json/include/)
2231

@@ -27,3 +36,11 @@ if (SYSTEM_INFO_ENABLE_PACKAGING)
2736
LIBRARY DESTINATION lib COMPONENT system_info_api)
2837
install(FILES system_info_reader.h DESTINATION inc COMPONENT system_info_api)
2938
endif ()
39+
40+
if (DRIVER_OVERRIDES_ENABLE_PACKAGING)
41+
install(TARGETS ${PROJECT_NAME}
42+
ARCHIVE DESTINATION bin COMPONENT driver_overrides_api
43+
RUNTIME DESTINATION bin COMPONENT driver_overrides_api
44+
LIBRARY DESTINATION lib COMPONENT driver_overrides_api)
45+
install(FILES driver_overrides_reader.h DESTINATION inc COMPONENT driver_overrides_api)
46+
endif ()

source/definitions.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//=============================================================================
2-
// Copyright (c) 2022-2023 Advanced Micro Devices, Inc. All rights reserved.
2+
// Copyright (c) 2022-2024 Advanced Micro Devices, Inc. All rights reserved.
33
/// @author AMD Developer Tools Team
44
/// @file
55
/// @brief JSON key definitions
@@ -63,6 +63,7 @@ static constexpr const char* kNodeStringProcessId = "processId";
6363
static constexpr const char* kNodeStringPath = "path";
6464
static constexpr const char* kNodeStringArchitecture = "architecture";
6565
static constexpr const char* kNodeStringCpuVendorId = "vendorId";
66+
static constexpr const char* kNodeStringCpuTimeClockFreq = "cpuTimeClockFreq";
6667
static constexpr const char* kNodeStringCpuPhysicalCoreCount = "numPhysicalCores";
6768
static constexpr const char* kNodeStringCpuLogicalCoreCount = "numLogicalCores";
6869
static constexpr const char* kNodeStringSpeed = "speed";
@@ -76,6 +77,9 @@ static constexpr const char* kNodeStringPciFunction = "function";
7677
static constexpr const char* kNodeStringAsic = "asic";
7778
static constexpr const char* kNodeStringAsicGpuIndex = "gpuIndex";
7879
static constexpr const char* kNodeStringAsicGpuCounterFrequency = "gpuCounterFreq";
80+
static constexpr const char* kNodeStringAsicNumSe = "numShaderEngines";
81+
static constexpr const char* kNodeStringAsicNumSaPerSe = "numShaderArraysPerEngine";
82+
static constexpr const char* kNodeStringAsicCuMask = "cuMask";
7983
static constexpr const char* kNodeStringAsicNumCus = "numCus";
8084
static constexpr const char* kNodeStringAsicEngineClockSpeed = "engineClockHz";
8185
static constexpr const char* kNodeStringMin = "min";
@@ -85,6 +89,9 @@ static constexpr const char* kNodeStringAsicGfxEngine = "gfxEngine";
8589
static constexpr const char* kNodeStringAsicFamily = "family";
8690
static constexpr const char* kNodeStringAsicERev = "eRev";
8791
static constexpr const char* kNodeStringAsicRevision = "revision";
92+
static constexpr const char* kNodeStringAsicSubsystem = "subsystem";
93+
static constexpr const char* kNodeStringAsicVendor = "vendor";
94+
static constexpr const char* kNodeStringAsicLuid = "luid";
8895
static constexpr const char* kNodeStringMemoryOpsPerClock = "memOpsPerClock";
8996
static constexpr const char* kNodeStringMemoryBusBitWidth = "busBitWidth";
9097
static constexpr const char* kNodeStringMemoryBandwith = "bandwidthBytesPerSec";
@@ -108,6 +115,7 @@ static constexpr const char* kNodeStringDrm = "drm";
108115
static constexpr const char* kNodeStringIsClosedSource = "isClosedSource";
109116
static constexpr const char* kNodeStringEtwSupport = "etwSupport";
110117
static constexpr const char* kNodeStringSupported = "isSupported";
118+
static constexpr const char* kNodeStringEtwRegistryOrUserGroup = "needsRegistryOrUserGroup";
111119
static constexpr const char* kNodeStringHasPermission = "hasPermission";
112120
static constexpr const char* kNodeStringStatusCode = "statusCode";
113121
static constexpr const char* kNodeStringPowerDpmWritable = "powerDpmWritable";
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
//=============================================================================
2+
// Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved.
3+
/// @author AMD Developer Tools Team
4+
/// @file
5+
/// @brief Definitions for Driver Override RDF chunk.
6+
//=============================================================================
7+
8+
#ifndef DRIVER_OVERRIDES_UTILS_SOURCE_DRIVER_OVERRIDES_DEFINITIONS_H_
9+
#define DRIVER_OVERRIDES_UTILS_SOURCE_DRIVER_OVERRIDES_DEFINITIONS_H_
10+
11+
namespace driver_overrides_utils
12+
{
13+
static constexpr const char* kDriverOverridesChunkIdentifier = "DriverOverrides";
14+
static constexpr uint32_t kDriverOverridesChunkVersion = 3; ///< Current Driver Override chunk version.
15+
static constexpr uint32_t kDriverOverridesChunkVersionMin = 2; ///< Minimum supported chunk version.
16+
static constexpr uint32_t kDriverOverridesChunkVersionMax = kDriverOverridesChunkVersion; ///< Maximum supported chunk version.
17+
18+
static constexpr const char* kDriverOverridesmiscellaneousStructure = "Misc."; ///< String used for unnamed structures.
19+
20+
static constexpr const char* kNodeStringIsDriverExperiments = "IsDriverExperiments";
21+
static constexpr const char* kNodeStringComponents = "Components";
22+
static constexpr const char* kNodeStringComponent = "Component";
23+
static constexpr const char* kNodeStringStructures = "Structures";
24+
static constexpr const char* kNodeStringStructure = "Structure";
25+
static constexpr const char* kNodeStringSettingName = "SettingName";
26+
static constexpr const char* kNodeStringCurrent = "Current";
27+
static constexpr const char* kNodeStringValue = "Value";
28+
static constexpr const char* kNodeStringUserOverride = "UserOverride";
29+
static constexpr const char* kNodeStringDescription = "Description";
30+
static constexpr const char* kNodeStringSupported = "Supported";
31+
32+
} // namespace driver_overrides_utils
33+
#endif // DRIVER_OVERRIDES_UTILS_SOURCE_DRIVER_OVERRIDES_DEFINITIONS_H_

0 commit comments

Comments
 (0)