Skip to content

Commit cb54a5d

Browse files
author
ericjunwei
committed
ADLX SDK v1.2
1 parent 42372fc commit cb54a5d

2,583 files changed

Lines changed: 39258 additions & 11538 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.

SDK/ADLXHelper/Windows/C/ADLXHelper.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,4 +172,4 @@ ADLX_RESULT InitializePrivate (adlx_handle adlContext, ADLX_ADL_Main_Memory_Fre
172172
}
173173

174174
return ADLX_FAIL;
175-
}
175+
}
Lines changed: 77 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//
1+
//
22
// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved.
33
//
44
//-------------------------------------------------------------------------------------------------
@@ -9,62 +9,61 @@ ADLXHelper g_ADLX;
99

1010
//-------------------------------------------------------------------------------------------------
1111
//Constructor
12-
ADLXHelper::ADLXHelper()
13-
{
14-
}
12+
ADLXHelper::ADLXHelper ()
13+
{}
1514

1615
//-------------------------------------------------------------------------------------------------
1716
//Destructor
18-
ADLXHelper::~ADLXHelper()
17+
ADLXHelper::~ADLXHelper ()
1918
{
20-
Terminate();
19+
Terminate ();
2120
}
2221

2322
//-------------------------------------------------------------------------------------------------
2423
//Initialization
2524
ADLX_RESULT ADLXHelper::Initialize ()
2625
{
27-
return InitializePrivate(nullptr, nullptr);
26+
return InitializePrivate (nullptr, nullptr);
2827
}
2928

30-
ADLX_RESULT ADLXHelper::InitializeWithIncompatibleDriver()
29+
ADLX_RESULT ADLXHelper::InitializeWithIncompatibleDriver ()
3130
{
32-
return InitializePrivate(nullptr, nullptr, true);
31+
return InitializePrivate (nullptr, nullptr, true);
3332
}
3433

3534
ADLX_RESULT ADLXHelper::InitializeWithCallerAdl (adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree)
3635
{
37-
if (adlContext == nullptr || adlMainMemoryFree == nullptr)
38-
{
39-
return ADLX_INVALID_ARGS;
40-
}
41-
return InitializePrivate(adlContext, adlMainMemoryFree);
36+
if (adlContext == nullptr || adlMainMemoryFree == nullptr)
37+
{
38+
return ADLX_INVALID_ARGS;
39+
}
40+
return InitializePrivate (adlContext, adlMainMemoryFree);
4241
}
4342

4443
//-------------------------------------------------------------------------------------------------
4544
//Termination
4645
ADLX_RESULT ADLXHelper::Terminate ()
4746
{
48-
ADLX_RESULT res = ADLX_OK;
49-
if (m_hDLLHandle != nullptr)
50-
{
51-
m_ADLXFullVersion = 0;
52-
m_ADLXVersion = nullptr;
53-
m_pSystemServices = nullptr;
54-
m_pAdlMapping = nullptr;
55-
if (nullptr != m_terminateFn)
56-
{
57-
res = m_terminateFn();
58-
}
59-
m_fullVersionFn = nullptr;
60-
m_versionFn = nullptr;
61-
m_initWithADLFn = nullptr;
62-
m_initFnEx = nullptr;
63-
m_initFn = nullptr;
64-
m_terminateFn = nullptr;
65-
adlx_free_library(m_hDLLHandle);
66-
m_hDLLHandle = nullptr;
67-
}
47+
ADLX_RESULT res = ADLX_OK;
48+
if (m_hDLLHandle != nullptr)
49+
{
50+
m_ADLXFullVersion = 0;
51+
m_ADLXVersion = nullptr;
52+
m_pSystemServices = nullptr;
53+
m_pAdlMapping = nullptr;
54+
if (nullptr != m_terminateFn)
55+
{
56+
res = m_terminateFn ();
57+
}
58+
m_fullVersionFn = nullptr;
59+
m_versionFn = nullptr;
60+
m_initWithADLFn = nullptr;
61+
m_initFnEx = nullptr;
62+
m_initFn = nullptr;
63+
m_terminateFn = nullptr;
64+
adlx_free_library (m_hDLLHandle);
65+
m_hDLLHandle = nullptr;
66+
}
6867
return res;
6968
}
7069

@@ -100,54 +99,54 @@ adlx::IADLMapping* ADLXHelper::GetAdlMapping ()
10099
//Loads ADLX and finds the function pointers to the ADLX functions
101100
ADLX_RESULT ADLXHelper::LoadADLXDll()
102101
{
103-
if (m_hDLLHandle == nullptr)
104-
{
105-
m_hDLLHandle = adlx_load_library(ADLX_DLL_NAME);
106-
if (m_hDLLHandle)
107-
{
108-
m_fullVersionFn = (ADLXQueryFullVersion_Fn)adlx_get_proc_address(m_hDLLHandle, ADLX_QUERY_FULL_VERSION_FUNCTION_NAME);
109-
m_versionFn = (ADLXQueryVersion_Fn)adlx_get_proc_address(m_hDLLHandle, ADLX_QUERY_VERSION_FUNCTION_NAME);
110-
m_initWithADLFn = (ADLXInitializeWithCallerAdl_Fn)adlx_get_proc_address(m_hDLLHandle, ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME);
111-
m_initFnEx = (ADLXInitialize_Fn)adlx_get_proc_address(m_hDLLHandle, ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME);
112-
m_initFn = (ADLXInitialize_Fn)adlx_get_proc_address(m_hDLLHandle, ADLX_INIT_FUNCTION_NAME);
113-
m_terminateFn = (ADLXTerminate_Fn)adlx_get_proc_address(m_hDLLHandle, ADLX_TERMINATE_FUNCTION_NAME);
114-
}
115-
}
116-
117-
if (m_fullVersionFn && m_versionFn && m_initWithADLFn && m_initFnEx && m_initFn && m_terminateFn)
118-
{
119-
return ADLX_OK;
120-
}
121-
122-
return ADLX_FAIL;
102+
if (m_hDLLHandle == nullptr)
103+
{
104+
m_hDLLHandle = adlx_load_library (ADLX_DLL_NAME);
105+
if (m_hDLLHandle)
106+
{
107+
m_fullVersionFn = (ADLXQueryFullVersion_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_QUERY_FULL_VERSION_FUNCTION_NAME);
108+
m_versionFn = (ADLXQueryVersion_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_QUERY_VERSION_FUNCTION_NAME);
109+
m_initWithADLFn = (ADLXInitializeWithCallerAdl_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_INIT_WITH_CALLER_ADL_FUNCTION_NAME);
110+
m_initFnEx = (ADLXInitialize_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_INIT_WITH_INCOMPATIBLE_DRIVER_FUNCTION_NAME);
111+
m_initFn = (ADLXInitialize_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_INIT_FUNCTION_NAME);
112+
m_terminateFn = (ADLXTerminate_Fn)adlx_get_proc_address (m_hDLLHandle, ADLX_TERMINATE_FUNCTION_NAME);
113+
}
114+
}
115+
116+
if (m_fullVersionFn && m_versionFn && m_initWithADLFn && m_initFnEx && m_initFn && m_terminateFn)
117+
{
118+
return ADLX_OK;
119+
}
120+
121+
return ADLX_FAIL;
123122
}
124123

125124
//-------------------------------------------------------------------------------------------------
126125
//Initializes ADLX based on the parameters
127126
ADLX_RESULT ADLXHelper::InitializePrivate(adlx_handle adlContext, ADLX_ADL_Main_Memory_Free adlMainMemoryFree, adlx_bool useIncompatibleDriver)
128127
{
129-
ADLX_RESULT res = LoadADLXDll();
130-
if (ADLX_OK == res)
131-
{
132-
m_fullVersionFn(&m_ADLXFullVersion);
133-
m_versionFn(&m_ADLXVersion);
134-
if (adlContext != nullptr && adlMainMemoryFree != nullptr)
135-
{
136-
res = m_initWithADLFn(ADLX_FULL_VERSION, &m_pSystemServices, &m_pAdlMapping, adlContext, adlMainMemoryFree);
137-
}
138-
else
139-
{
140-
if (useIncompatibleDriver)
141-
{
142-
res = m_initFnEx(ADLX_FULL_VERSION, &m_pSystemServices);
143-
}
144-
else
145-
{
146-
res = m_initFn(ADLX_FULL_VERSION, &m_pSystemServices);
147-
}
148-
}
149-
return res;
150-
}
151-
152-
return ADLX_FAIL;
128+
ADLX_RESULT res = LoadADLXDll ();
129+
if (ADLX_OK == res)
130+
{
131+
m_fullVersionFn (&m_ADLXFullVersion);
132+
m_versionFn (&m_ADLXVersion);
133+
if (adlContext != nullptr && adlMainMemoryFree != nullptr)
134+
{
135+
res = m_initWithADLFn (ADLX_FULL_VERSION, &m_pSystemServices, &m_pAdlMapping, adlContext, adlMainMemoryFree);
136+
}
137+
else
138+
{
139+
if (useIncompatibleDriver)
140+
{
141+
res = m_initFnEx (ADLX_FULL_VERSION, &m_pSystemServices);
142+
}
143+
else
144+
{
145+
res = m_initFn (ADLX_FULL_VERSION, &m_pSystemServices);
146+
}
147+
}
148+
return res;
149+
}
150+
151+
return ADLX_FAIL;
153152
}

SDK/ADLXHelper/Windows/Cpp/ADLXHelper.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//
1+
//
22
// Copyright (c) 2021 - 2023 Advanced Micro Devices, Inc. All rights reserved.
33
//
44
//-------------------------------------------------------------------------------------------------
@@ -249,7 +249,7 @@ class ADLXHelper
249249
* @requirements
250250
* @DetailsTable{#include "ADLXHelper/Windows/Cpp/ADLXHelper.h", @ADLX_First_Ver}
251251
*/
252-
const char* QueryVersion();
252+
const char* QueryVersion ();
253253

254254
/**
255255
* @page page_cppHelpGetSystemServices GetSystemServices

SDK/Include/ADLXDefines.h

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,51 @@ typedef enum
353353
} ADLX_ASIC_FAMILY_TYPE;
354354
#pragma endregion ADLX_ASIC_FAMILY_TYPE
355355

356+
#pragma region ADLX_PCI_BUS_TYPE
357+
/**
358+
* @enum ADLX_PCI_BUS_TYPE
359+
* @ingroup enumerations
360+
* @ENG_START_DOX
361+
* @brief Indicates the PCI bus type.
362+
* @ENG_END_DOX
363+
*/
364+
typedef enum
365+
{
366+
UNDEFINED = 0, /**< @ENG_START_DOX The PCI bus type is not defined. @ENG_END_DOX */
367+
PCI, /**< @ENG_START_DOX The PCI bus type is PCI bus. @ENG_END_DOX */
368+
AGP, /**< @ENG_START_DOX The PCI bus type is AGP bus. @ENG_END_DOX */
369+
PCIE, /**< @ENG_START_DOX The PCI bus type is PCI Express bus. @ENG_END_DOX */
370+
PCIE_2_0, /**< @ENG_START_DOX The PCI bus type is PCI Express 2nd generation bus. @ENG_END_DOX */
371+
PCIE_3_0, /**< @ENG_START_DOX The PCI bus type is PCI Express 3rd generation bus. @ENG_END_DOX */
372+
PCIE_4_0 /**< @ENG_START_DOX The PCI bus type is PCI Express 4th generation bus. @ENG_END_DOX */
373+
} ADLX_PCI_BUS_TYPE;
374+
#pragma endregion ADLX_PCI_BUS_TYPE
375+
376+
#pragma region ADLX_DP_LINK_RATE
377+
/**
378+
* @enum ADLX_DP_LINK_RATE
379+
* @ingroup enumerations
380+
* @ENG_START_DOX
381+
* @brief Indicates the DP link rate.
382+
* @ENG_END_DOX
383+
*/
384+
typedef enum
385+
{
386+
DP_LINK_RATE_UNKNOWN = 0, /**< @ENG_START_DOX The DP link rate is unknown. @ENG_END_DOX */
387+
DP_LINK_RATE_RBR, /**< @ENG_START_DOX The DP link rate is 1.62 Gbps/Lane. @ENG_END_DOX */
388+
DP_LINK_RATE_2_16GBPS, /**< @ENG_START_DOX The DP link rate is 2.16 Gbps/Lane. @ENG_END_DOX */
389+
DP_LINK_RATE_2_43GBPS, /**< @ENG_START_DOX The DP link rate is 2.43 Gbps/Lane. @ENG_END_DOX */
390+
DP_LINK_RATE_HBR, /**< @ENG_START_DOX The DP link rate is 2.70 Gbps/Lane. @ENG_END_DOX */
391+
DP_LINK_RATE_4_32GBPS, /**< @ENG_START_DOX The DP link rate is 4.32 Gbps/Lane. @ENG_END_DOX */
392+
DP_LINK_RATE_HBR2, /**< @ENG_START_DOX The DP link rate is 5.40 Gbps/Lane. @ENG_END_DOX */
393+
DP_LINK_RATE_HBR3, /**< @ENG_START_DOX The DP link rate is 8.10 Gbps/Lane. @ENG_END_DOX */
394+
DP_LINK_RATE_UHBR10, /**< @ENG_START_DOX The DP link rate is 10 Gbps/Lane. @ENG_END_DOX */
395+
DP_LINK_RATE_UHBR13D5, /**< @ENG_START_DOX The DP link rate is 13.5 Gbps/Lane. @ENG_END_DOX */
396+
DP_LINK_RATE_UHBR20 /**< @ENG_START_DOX The DP link rate is 20 Gbps/Lane. @ENG_END_DOX */
397+
} ADLX_DP_LINK_RATE;
398+
399+
#pragma endregion ADLX_DP_LINK_RATE
400+
356401
#pragma region ADLX_GPU_TYPE
357402
/**
358403
* @enum ADLX_GPU_TYPE
@@ -886,6 +931,20 @@ typedef enum
886931
} ADLX_3DLUT_COLORSPACE;
887932
#pragma endregion ADLX_3DLUT_COLORSPACE
888933

934+
#pragma region ADLX_SSM_BIAS_MODE
935+
/** @enum ADLX_SSM_BIAS_MODE
936+
* @ingroup enumerations
937+
* @ENG_START_DOX
938+
* @brief AMD SmartShift Max bias mode.
939+
* @ENG_END_DOX
940+
*/
941+
typedef enum
942+
{
943+
SSM_BIAS_AUTO = 0, /**< @ENG_START_DOX The bias control type is auto. @ENG_END_DOX */
944+
SSM_BIAS_MANUAL /**< @ENG_START_DOX The bias control type is manual. @ENG_END_DOX */
945+
}ADLX_SSM_BIAS_MODE;
946+
#pragma endregion ADLX_SSM_BIAS_MODE
947+
889948
#pragma region ADLX_ANTILAG_STATE
890949
/**
891950
* @enum ADLX_ANTILAG_STATE
@@ -901,6 +960,22 @@ typedef enum
901960
} ADLX_ANTILAG_STATE;
902961
#pragma endregion ADLX_ANTILAG_STATE
903962

963+
#pragma region ADLX_MGPU_MODE
964+
/**
965+
* @enum ADLX_MGPU_MODE
966+
* @ingroup enumerations
967+
* @ENG_START_DOX
968+
* @brief Indicates the AMD MGPU mode.
969+
* @ENG_END_DOX
970+
*/
971+
typedef enum
972+
{
973+
MGPU_NONE = 0, /**< @ENG_START_DOX The GPU is not part of an AMD MGPU configuration. @ENG_END_DOX */
974+
MGPU_PRIMARY, /**< @ENG_START_DOX The GPU is the primary GPU in an AMD MGPU configuration. @ENG_END_DOX */
975+
MGPU_SECONDARY, /**< @ENG_START_DOX The GPU is the secondary GPU in an AMD MGPU configuration. @ENG_END_DOX */
976+
} ADLX_MGPU_MODE;
977+
#pragma endregion ADLX_MGPU_MODE
978+
904979
#pragma endregion ADLX data types
905980

906981
//-------------------------------------------------------------------------------------------------

SDK/Include/ADLXVersion.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
#pragma once
99

1010
#define ADLX_VER_MAJOR 1
11-
#define ADLX_VER_MINOR 1
11+
#define ADLX_VER_MINOR 2
1212
#define ADLX_VER_RELEASE 0
13-
#define ADLX_VER_BUILD_NUM 56
13+
#define ADLX_VER_BUILD_NUM 72
1414

1515
#define STRING(a) #a
1616
#define STRING_EXPAND(a) STRING(a)

SDK/Include/I3DSettings.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,10 @@ namespace adlx
282282
* @addinfo
283283
* @ENG_START_DOX
284284
* AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement.<br>
285-
* __Note:__ AMD Radeon Chill, @ref DOX_IADLX3DBoost "AMD Radeon Boost", and @ref DOX_IADLX3DAntiLag "AMD Radeon Anti-Lag" features cannot be enabled simultaneously. If AMD Radeon Boost or AMD Radeon Anti-Lag is enabled, AMD Radeon Chill is automatically disabled.<br>
286-
* On some AMD GPUs, AMD Radeon Chill and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If Radeon Super Resolution is enabled, AMD Radeon Chill is automatically disabled.
285+
* AMD Radeon Chill cannot be enabled simultaneously with @ref DOX_IADLX3DBoost "AMD Radeon Boost", @ref DOX_IADLX3DAntiLag "AMD Radeon Anti-Lag", and @ref DOX_IADLX3DAntiLag1 "AMD Radeon Anti-Lag Next".<br>
286+
* On some AMD GPUs, AMD Radeon Chill cannot be enabled simultaneously with @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution".<br>
287+
* When a mutually exclusive feature is enabled, AMD Radeon Chill is automatically disabled.<br>
288+
* __Note:__ If AMD Radeon Chill is later re-enabled, its previous configuration settings will be restored.
287289
* @ENG_END_DOX
288290
*
289291
*@copydoc IADLX3DChill_REQ_TABLE
@@ -402,10 +404,11 @@ namespace adlx
402404
*
403405
* @addinfo
404406
* @ENG_START_DOX
405-
* AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement. <br>
406-
* __Note:__ AMD Radeon Chill, @ref DOX_IADLX3DBoost "AMD Radeon Boost", and @ref DOX_IADLX3DAntiLag "AMD Radeon Anti-Lag" features cannot be enabled simultaneously. If AMD Radeon Chill is enabled, AMD Radeon Anti-Lag and AMD Radeon Boost are automatically disabled. However, the configurations of the disabled feature is preserved.<br>
407-
* On some AMD GPUs, AMD Radeon Chill and @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution" cannot be enabled simultaneously. If AMD Radeon Chill is enabled, Radeon Super Resolution is automatically disabled.
408-
407+
* AMD Radeon Chill conserves GPU power and reduces heat by adjusting the FPS based on the intensity of in-game movement.<br>
408+
* AMD Radeon Chill cannot be enabled simultaneously with @ref DOX_IADLX3DBoost "AMD Radeon Boost", @ref DOX_IADLX3DAntiLag "AMD Radeon Anti-Lag", and @ref DOX_IADLX3DAntiLag1 "AMD Radeon Anti-Lag Next".<br>
409+
* On some AMD GPUs, AMD Radeon Chill cannot be enabled simultaneously with @ref DOX_IADLX3DRadeonSuperResolution "Radeon Super Resolution".<br>
410+
* When AMD Radeon Chill is enabled, the mutually exclusive features are automatically disabled.<br>
411+
* __Note:__ If the disabled feature is later re-enabled, its previous configuration settings will be restored.
409412
* @ENG_END_DOX
410413
*
411414
*@copydoc IADLX3DChill_REQ_TABLE

0 commit comments

Comments
 (0)