node-gpuinfo 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +336 -0
- package/binding.gyp +69 -0
- package/build/Release/gpu.exp +0 -0
- package/build/Release/gpu.lib +0 -0
- package/build/Release/gpu.node +0 -0
- package/build/Release/gpu.pdb +0 -0
- package/build/binding.sln +19 -0
- package/build/gpu.vcxproj +175 -0
- package/build/gpu.vcxproj.filters +169 -0
- package/example.js +69 -0
- package/index.js +33 -0
- package/package.json +68 -0
- package/src/binding.cpp +201 -0
- package/src/gpu_info.c +130 -0
- package/src/gpu_info.h +86 -0
- package/src/includes/adlx/ADLX.h +367 -0
- package/src/includes/adlx/ADLXDefines.h +1345 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
- package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
- package/src/includes/adlx/ADLXStructures.h +206 -0
- package/src/includes/adlx/ADLXVersion.h +18 -0
- package/src/includes/adlx/I3DSettings.h +3476 -0
- package/src/includes/adlx/I3DSettings1.h +292 -0
- package/src/includes/adlx/I3DSettings2.h +317 -0
- package/src/includes/adlx/IApplications.h +397 -0
- package/src/includes/adlx/IChangedEvent.h +71 -0
- package/src/includes/adlx/ICollections.h +325 -0
- package/src/includes/adlx/IDesktops.h +918 -0
- package/src/includes/adlx/IDisplay3DLUT.h +663 -0
- package/src/includes/adlx/IDisplayGamma.h +683 -0
- package/src/includes/adlx/IDisplayGamut.h +760 -0
- package/src/includes/adlx/IDisplaySettings.h +3476 -0
- package/src/includes/adlx/IDisplays.h +2676 -0
- package/src/includes/adlx/IDisplays1.h +191 -0
- package/src/includes/adlx/IDisplays2.h +188 -0
- package/src/includes/adlx/IDisplays3.h +256 -0
- package/src/includes/adlx/IGPUAutoTuning.h +460 -0
- package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
- package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
- package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
- package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
- package/src/includes/adlx/IGPUPresetTuning.h +469 -0
- package/src/includes/adlx/IGPUTuning.h +1239 -0
- package/src/includes/adlx/IGPUTuning1.h +197 -0
- package/src/includes/adlx/II2C.h +198 -0
- package/src/includes/adlx/ILog.h +72 -0
- package/src/includes/adlx/IMultiMedia.h +578 -0
- package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
- package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
- package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
- package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
- package/src/includes/adlx/IPowerTuning.h +473 -0
- package/src/includes/adlx/IPowerTuning1.h +515 -0
- package/src/includes/adlx/ISmartAccessMemory.h +114 -0
- package/src/includes/adlx/ISystem.h +1557 -0
- package/src/includes/adlx/ISystem1.h +237 -0
- package/src/includes/adlx/ISystem2.h +643 -0
- package/src/linux/amd_linux.c +269 -0
- package/src/linux/intel_linux.c +20 -0
- package/src/linux/nvidia_linux.c +257 -0
- package/src/macos/amd_mac.c +131 -0
- package/src/macos/intel_mac.c +131 -0
- package/src/macos/nvidia_mac.c +21 -0
- package/src/vendor/amd.c +37 -0
- package/src/vendor/intel.c +37 -0
- package/src/vendor/nvidia.c +37 -0
- package/src/windows/amd_windows.c +468 -0
- package/src/windows/intel_windows.c +157 -0
- package/src/windows/nvidia_windows.c +252 -0
|
@@ -0,0 +1,1557 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
//-------------------------------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
//-------------------------------------------------------------------------------------------------
|
|
7
|
+
//ISystem.h - Interfaces for ADLX System-level functionality
|
|
8
|
+
|
|
9
|
+
#ifndef ADLX_ISYSTEM_H
|
|
10
|
+
#define ADLX_ISYSTEM_H
|
|
11
|
+
#pragma once
|
|
12
|
+
|
|
13
|
+
#include "ADLXDefines.h"
|
|
14
|
+
#include "ICollections.h"
|
|
15
|
+
|
|
16
|
+
//Interfaces for GPU Info
|
|
17
|
+
#pragma region IADLXGPU interface
|
|
18
|
+
#if defined (__cplusplus)
|
|
19
|
+
namespace adlx
|
|
20
|
+
{
|
|
21
|
+
class ADLX_NO_VTABLE IADLXGPU : public IADLXInterface
|
|
22
|
+
{
|
|
23
|
+
public:
|
|
24
|
+
ADLX_DECLARE_IID (L"IADLXGPU")
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @page DOX_IADLXGPU_VendorId VendorId
|
|
28
|
+
* @ENG_START_DOX
|
|
29
|
+
* @brief Gets the vendor id of a GPU.
|
|
30
|
+
* @ENG_END_DOX
|
|
31
|
+
* @syntax
|
|
32
|
+
* @codeStart
|
|
33
|
+
* @ref ADLX_RESULT VendorId (const char** vendorId)
|
|
34
|
+
* @codeEnd
|
|
35
|
+
*
|
|
36
|
+
* @params
|
|
37
|
+
* @paramrow{1.,[out],vendorId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the vendor id is returned. @ENG_END_DOX}
|
|
38
|
+
*
|
|
39
|
+
* @retvalues
|
|
40
|
+
* @ENG_START_DOX
|
|
41
|
+
* If the vendor id is successfully returned, __ADLX_OK__ is returned.<br>
|
|
42
|
+
* If the vendor id is not successfully returned, an error code is returned.<br>
|
|
43
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
44
|
+
* @ENG_END_DOX
|
|
45
|
+
*
|
|
46
|
+
* @detaileddesc
|
|
47
|
+
* @ENG_START_DOX
|
|
48
|
+
* @details The vendor id is a predetermined value programmed into the GPU at the point of manufacturing and consists of four hexadecimal digits.
|
|
49
|
+
* @ENG_END_DOX
|
|
50
|
+
* @addinfo
|
|
51
|
+
* @ENG_START_DOX
|
|
52
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
53
|
+
* If the application uses the vendor id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the vendor id.
|
|
54
|
+
* @ENG_END_DOX
|
|
55
|
+
*
|
|
56
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
57
|
+
*
|
|
58
|
+
*/
|
|
59
|
+
virtual ADLX_RESULT ADLX_STD_CALL VendorId (const char** vendorId) = 0;
|
|
60
|
+
/**
|
|
61
|
+
* @page DOX_IADLXGPU_ASICFamilyType ASICFamilyType
|
|
62
|
+
* @ENG_START_DOX
|
|
63
|
+
* @brief Gets the ASIC family type of a GPU.
|
|
64
|
+
* @ENG_END_DOX
|
|
65
|
+
* @syntax
|
|
66
|
+
* @codeStart
|
|
67
|
+
* @ref ADLX_RESULT ASICFamilyType (@ref ADLX_ASIC_FAMILY_TYPE* asicFamilyType)
|
|
68
|
+
* @codeEnd
|
|
69
|
+
*
|
|
70
|
+
* @params
|
|
71
|
+
* @paramrow{1.,[out],asicFamilyType,@ref ADLX_ASIC_FAMILY_TYPE*,@ENG_START_DOX The pointer to a variable where the ASIC family type is returned. @ENG_END_DOX}
|
|
72
|
+
*
|
|
73
|
+
* @retvalues
|
|
74
|
+
* @ENG_START_DOX
|
|
75
|
+
* If the ASIC family type is successfully returned, __ADLX_OK__ is returned.<br>
|
|
76
|
+
* If the ASIC family type is not successfully returned, an error code is returned.<br>
|
|
77
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
78
|
+
* @ENG_END_DOX
|
|
79
|
+
*
|
|
80
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
81
|
+
*
|
|
82
|
+
*/
|
|
83
|
+
virtual ADLX_RESULT ADLX_STD_CALL ASICFamilyType (ADLX_ASIC_FAMILY_TYPE* asicFamilyType) const = 0;
|
|
84
|
+
/**
|
|
85
|
+
* @page DOX_IADLXGPU_Type Type
|
|
86
|
+
* @ENG_START_DOX
|
|
87
|
+
* @brief Gets the type of a GPU.
|
|
88
|
+
* @ENG_END_DOX
|
|
89
|
+
* @syntax
|
|
90
|
+
* @codeStart
|
|
91
|
+
* @ref ADLX_RESULT Type (@ref ADLX_GPU_TYPE* gpuType)
|
|
92
|
+
* @codeEnd
|
|
93
|
+
*
|
|
94
|
+
* @params
|
|
95
|
+
* @paramrow{1.,[out],gpuType,@ref ADLX_GPU_TYPE*,@ENG_START_DOX The pointer to a variable where the GPU type is returned. @ENG_END_DOX}
|
|
96
|
+
*
|
|
97
|
+
* @retvalues
|
|
98
|
+
* @ENG_START_DOX
|
|
99
|
+
* If the GPU type is successfully returned, __ADLX_OK__ is returned.<br>
|
|
100
|
+
* If the GPU type is not successfully returned, an error code is returned.<br>
|
|
101
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
102
|
+
* @ENG_END_DOX
|
|
103
|
+
*
|
|
104
|
+
* @detaileddesc
|
|
105
|
+
* @ENG_START_DOX
|
|
106
|
+
* @details The GPU type can be categorized into Integrated, Discrete, and Unknown.
|
|
107
|
+
* @ENG_END_DOX
|
|
108
|
+
*
|
|
109
|
+
*
|
|
110
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
111
|
+
*
|
|
112
|
+
*/
|
|
113
|
+
virtual ADLX_RESULT ADLX_STD_CALL Type (ADLX_GPU_TYPE* gpuType) const = 0;
|
|
114
|
+
/**
|
|
115
|
+
* @page DOX_IADLXGPU_IsExternal IsExternal
|
|
116
|
+
* @ENG_START_DOX
|
|
117
|
+
* @brief Checks if a GPU is an external or internal GPU.
|
|
118
|
+
* @ENG_END_DOX
|
|
119
|
+
* @syntax
|
|
120
|
+
* @codeStart
|
|
121
|
+
* @ref ADLX_RESULT IsExternal (adlx_bool* isExternal)
|
|
122
|
+
* @codeEnd
|
|
123
|
+
*
|
|
124
|
+
* @params
|
|
125
|
+
* @paramrow{1.,[out],isExternal,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of the GPU is returned. The variable is __true__ if the GPU is external. The variable is __false__ if the GPU is internal. @ENG_END_DOX}
|
|
126
|
+
*
|
|
127
|
+
* @retvalues
|
|
128
|
+
* @ENG_START_DOX
|
|
129
|
+
* If __IsExternal__ is successfully executed, __ADLX_OK__ is returned.<br>
|
|
130
|
+
* If __IsExternal__ is not successfully executed, an error code is returned.<br>
|
|
131
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
132
|
+
* @ENG_END_DOX
|
|
133
|
+
*
|
|
134
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
135
|
+
*
|
|
136
|
+
*/
|
|
137
|
+
virtual ADLX_RESULT ADLX_STD_CALL IsExternal (adlx_bool* isExternal) const = 0;
|
|
138
|
+
/**
|
|
139
|
+
* @page DOX_IADLXGPU_Name Name
|
|
140
|
+
* @ENG_START_DOX
|
|
141
|
+
* @brief Gets the name of a GPU.
|
|
142
|
+
* @ENG_END_DOX
|
|
143
|
+
* @syntax
|
|
144
|
+
* @codeStart
|
|
145
|
+
* @ref ADLX_RESULT Name (const char** name)
|
|
146
|
+
* @codeEnd
|
|
147
|
+
*
|
|
148
|
+
* @params
|
|
149
|
+
* @paramrow{1.,[out],name,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the name of the GPU is returned. @ENG_END_DOX}
|
|
150
|
+
*
|
|
151
|
+
* @retvalues
|
|
152
|
+
* @ENG_START_DOX
|
|
153
|
+
* If the name is successfully returned, __ADLX_OK__ is returned.<br>
|
|
154
|
+
* If the name is not successfully returned, an error code is returned.<br>
|
|
155
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
156
|
+
* @ENG_END_DOX
|
|
157
|
+
*
|
|
158
|
+
* @addinfo
|
|
159
|
+
* @ENG_START_DOX
|
|
160
|
+
* The returned memory buffer is valid within a lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
161
|
+
* If the application uses the name beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the name.<br>
|
|
162
|
+
* @ENG_END_DOX
|
|
163
|
+
*
|
|
164
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
165
|
+
*
|
|
166
|
+
*/
|
|
167
|
+
virtual ADLX_RESULT ADLX_STD_CALL Name (const char** name) const = 0;
|
|
168
|
+
/**
|
|
169
|
+
* @page DOX_IADLXGPU_DriverPath DriverPath
|
|
170
|
+
* @ENG_START_DOX
|
|
171
|
+
* @brief Gets the driver registry path of a GPU.
|
|
172
|
+
* @ENG_END_DOX
|
|
173
|
+
* @syntax
|
|
174
|
+
* @codeStart
|
|
175
|
+
* @ref ADLX_RESULT DriverPath (const char** driverPath)
|
|
176
|
+
* @codeEnd
|
|
177
|
+
*
|
|
178
|
+
* @params
|
|
179
|
+
* @paramrow{1.,[out],driverPath,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the driver registry path of a GPU is returned. @ENG_END_DOX}
|
|
180
|
+
*
|
|
181
|
+
* @retvalues
|
|
182
|
+
* @ENG_START_DOX
|
|
183
|
+
* If the driver path is successfully returned, __ADLX_OK__ is returned.<br>
|
|
184
|
+
* If the driver path is not successfully returned, an error code is returned.<br>
|
|
185
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
186
|
+
* @ENG_END_DOX
|
|
187
|
+
*
|
|
188
|
+
* @addinfo
|
|
189
|
+
* @ENG_START_DOX
|
|
190
|
+
* The returned memory buffer is valid within a lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
191
|
+
* If the application uses the driver path beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the driver path.<br>
|
|
192
|
+
* @ENG_END_DOX
|
|
193
|
+
*
|
|
194
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
195
|
+
*
|
|
196
|
+
*/
|
|
197
|
+
virtual ADLX_RESULT ADLX_STD_CALL DriverPath (const char** driverPath) const = 0;
|
|
198
|
+
/**
|
|
199
|
+
* @page DOX_IADLXGPU_PNPString PNPString
|
|
200
|
+
* @ENG_START_DOX
|
|
201
|
+
* @brief Gets the PNP string of a GPU.
|
|
202
|
+
* @ENG_END_DOX
|
|
203
|
+
* @syntax
|
|
204
|
+
* @codeStart
|
|
205
|
+
* @ref ADLX_RESULT PNPString (const char** pnpString)
|
|
206
|
+
* @codeEnd
|
|
207
|
+
*
|
|
208
|
+
* @params
|
|
209
|
+
* @paramrow{1.,[out],pnpString,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the PNP string of a GPU is returned. @ENG_END_DOX}
|
|
210
|
+
*
|
|
211
|
+
* @retvalues
|
|
212
|
+
* @ENG_START_DOX
|
|
213
|
+
* If the PNP string is successfully returned, __ADLX_OK__ is returned.<br>
|
|
214
|
+
* If the PNP string is not successfully returned, an error code is returned.<br>
|
|
215
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
216
|
+
* @ENG_END_DOX
|
|
217
|
+
*
|
|
218
|
+
* @addinfo
|
|
219
|
+
* @ENG_START_DOX
|
|
220
|
+
* The returned memory buffer is valid within a lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
221
|
+
* If the application uses the PNP string beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the PNP string.<br>
|
|
222
|
+
* @ENG_END_DOX
|
|
223
|
+
*
|
|
224
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
225
|
+
*
|
|
226
|
+
*/
|
|
227
|
+
virtual ADLX_RESULT ADLX_STD_CALL PNPString (const char** pnpString) const = 0;
|
|
228
|
+
/**
|
|
229
|
+
* @page DOX_IADLXGPU_HasDesktops HasDesktops
|
|
230
|
+
* @ENG_START_DOX
|
|
231
|
+
* @brief Checks if a GPU drives any desktops.
|
|
232
|
+
* @ENG_END_DOX
|
|
233
|
+
* @syntax
|
|
234
|
+
* @codeStart
|
|
235
|
+
* @ref ADLX_RESULT HasDesktops (adlx_bool* hasDesktops)
|
|
236
|
+
* @codeEnd
|
|
237
|
+
*
|
|
238
|
+
* @params
|
|
239
|
+
* @paramrow{1.,[out],hasDesktops,adlx_bool*,@ENG_START_DOX The pointer to a variable to check if a GPU drives any desktops is returned. The variable is __true__ if the GPU drives desktops. The variable is __false__ if the GPU does not drive any desktop. @ENG_END_DOX}
|
|
240
|
+
*
|
|
241
|
+
* @retvalues
|
|
242
|
+
* @ENG_START_DOX
|
|
243
|
+
* If __HasDesktops__ is successfully executed, __ADLX_OK__ is returned.<br>
|
|
244
|
+
* If __HasDesktops__ is not successfully executed, an error code is returned.<br>
|
|
245
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
246
|
+
* @ENG_END_DOX
|
|
247
|
+
*
|
|
248
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
249
|
+
*
|
|
250
|
+
*/
|
|
251
|
+
virtual ADLX_RESULT ADLX_STD_CALL HasDesktops (adlx_bool* hasDesktops) const = 0;
|
|
252
|
+
/**
|
|
253
|
+
*@page DOX_IADLXGPU_TotalVRAM TotalVRAM
|
|
254
|
+
*@ENG_START_DOX @brief Gets the total VRAM size of a GPU. @ENG_END_DOX
|
|
255
|
+
*
|
|
256
|
+
*@syntax
|
|
257
|
+
*@codeStart
|
|
258
|
+
* @ref ADLX_RESULT TotalVRAM (adlx_uint* vramMB)
|
|
259
|
+
*@codeEnd
|
|
260
|
+
*
|
|
261
|
+
*@params
|
|
262
|
+
*@paramrow{1.,[out] ,vramMB,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the total VRAM size is returned. @ENG_END_DOX}
|
|
263
|
+
*
|
|
264
|
+
*@retvalues
|
|
265
|
+
*@ENG_START_DOX If the total VRAM size is successfully returned, __ADLX_OK__ is returned.<br>
|
|
266
|
+
* If the total VRAM size is not successfully returned, an error code is returned.<br>
|
|
267
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
268
|
+
*
|
|
269
|
+
*@detaileddesc
|
|
270
|
+
*@ENG_START_DOX @details The total VRAM size is in MB. @ENG_END_DOX
|
|
271
|
+
*
|
|
272
|
+
*@copydoc IADLXGPU_REQ_TABLE
|
|
273
|
+
*
|
|
274
|
+
*/
|
|
275
|
+
virtual ADLX_RESULT ADLX_STD_CALL TotalVRAM (adlx_uint* vramMB) = 0;
|
|
276
|
+
/**
|
|
277
|
+
* @page DOX_IADLXGPU_VRAMType VRAMType
|
|
278
|
+
* @ENG_START_DOX@brief Gets the VRAM type of a GPU.@ENG_END_DOX
|
|
279
|
+
* @syntax
|
|
280
|
+
* @codeStart
|
|
281
|
+
* @ref ADLX_RESULT VRAMType(const char** type)
|
|
282
|
+
* @codeEnd
|
|
283
|
+
*
|
|
284
|
+
* @params
|
|
285
|
+
* @paramrow{1.,[out],type,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the VRAM type of the GPU is returned. @ENG_END_DOX}
|
|
286
|
+
*
|
|
287
|
+
* @retvalues
|
|
288
|
+
* @ENG_START_DOX
|
|
289
|
+
* If the VRAM type is successfully returned, __ADLX_OK__ is returned.<br>
|
|
290
|
+
* If the VRAM type is not successfully returned, an error code is returned.<br>
|
|
291
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
292
|
+
* @ENG_END_DOX
|
|
293
|
+
*
|
|
294
|
+
* @addinfo
|
|
295
|
+
* @ENG_START_DOX
|
|
296
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
297
|
+
* If the application uses the VRAM type beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the VRAM type.
|
|
298
|
+
* @ENG_END_DOX
|
|
299
|
+
*
|
|
300
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
301
|
+
*
|
|
302
|
+
*/
|
|
303
|
+
virtual ADLX_RESULT ADLX_STD_CALL VRAMType(const char** type) = 0;
|
|
304
|
+
/**
|
|
305
|
+
* @page DOX_IADLXGPU_BIOSInfo BIOSInfo
|
|
306
|
+
* @ENG_START_DOX@brief Gets the BIOS info of a GPU.@ENG_END_DOX
|
|
307
|
+
* @syntax
|
|
308
|
+
* @codeStart
|
|
309
|
+
* @ref ADLX_RESULT BIOSInfo(const char** partNumber, const char** version, const char** date)
|
|
310
|
+
* @codeEnd
|
|
311
|
+
*
|
|
312
|
+
* @params
|
|
313
|
+
* @paramrow{1.,[out],partNumber,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the BIOS part number of the GPU is returned. @ENG_END_DOX}
|
|
314
|
+
* @paramrow{2.,[out],version,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the BIOS version of the GPU is returned. @ENG_END_DOX}
|
|
315
|
+
* @paramrow{3.,[out],date,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the BIOS date of the GPU is returned. @ENG_END_DOX}
|
|
316
|
+
*
|
|
317
|
+
* @retvalues
|
|
318
|
+
* @ENG_START_DOX
|
|
319
|
+
* If the BIOS part number, BIOS version and BIOS date are successfully returned, __ADLX_OK__ is returned.<br>
|
|
320
|
+
* If the BIOS part number, BIOS version and BIOS date are not successfully returned, an error code is returned.<br>
|
|
321
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
322
|
+
* @ENG_END_DOX
|
|
323
|
+
*
|
|
324
|
+
* @addinfo
|
|
325
|
+
* @ENG_START_DOX
|
|
326
|
+
* The returned memory buffers are valid within the lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
327
|
+
* If the application uses the BIOS part number, BIOS version and BIOS date beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the BIOS part number, BIOS version and BIOS date.
|
|
328
|
+
* @ENG_END_DOX
|
|
329
|
+
*
|
|
330
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
331
|
+
*
|
|
332
|
+
*/
|
|
333
|
+
virtual ADLX_RESULT ADLX_STD_CALL BIOSInfo(const char** partNumber, const char** version, const char** date) = 0;
|
|
334
|
+
/**
|
|
335
|
+
* @page DOX_IADLXGPU_DeviceId DeviceId
|
|
336
|
+
* @ENG_START_DOX@brief Gets the device id of a GPU.@ENG_END_DOX
|
|
337
|
+
* @syntax
|
|
338
|
+
* @codeStart
|
|
339
|
+
* @ref ADLX_RESULT DeviceId(const char** deviceId)
|
|
340
|
+
* @codeEnd
|
|
341
|
+
*
|
|
342
|
+
* @params
|
|
343
|
+
* @paramrow{1.,[out],deviceId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the device id of the GPU is returned. @ENG_END_DOX}
|
|
344
|
+
*
|
|
345
|
+
* @retvalues
|
|
346
|
+
* @ENG_START_DOX
|
|
347
|
+
* If the device id is successfully returned, __ADLX_OK__ is returned.<br>
|
|
348
|
+
* If the device id is not successfully returned, an error code is returned.<br>
|
|
349
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
350
|
+
* @ENG_END_DOX
|
|
351
|
+
*
|
|
352
|
+
* @detaileddesc
|
|
353
|
+
* @ENG_START_DOX
|
|
354
|
+
* @details The device id is a predetermined value programmed into the GPU at the point of manufacturing and consists of four hexadecimal digits.
|
|
355
|
+
* @ENG_END_DOX
|
|
356
|
+
*
|
|
357
|
+
* @addinfo
|
|
358
|
+
* @ENG_START_DOX
|
|
359
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
360
|
+
* If the application uses the device id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the device id.
|
|
361
|
+
* @ENG_END_DOX
|
|
362
|
+
*
|
|
363
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
364
|
+
*
|
|
365
|
+
*/
|
|
366
|
+
virtual ADLX_RESULT ADLX_STD_CALL DeviceId(const char** deviceId) = 0;
|
|
367
|
+
/**
|
|
368
|
+
* @page DOX_IADLXGPU_RevisionId RevisionId
|
|
369
|
+
* @ENG_START_DOX@brief Gets the revision id of a GPU.@ENG_END_DOX
|
|
370
|
+
* @syntax
|
|
371
|
+
* @codeStart
|
|
372
|
+
* @ref ADLX_RESULT RevisionId(const char** revisionId)
|
|
373
|
+
* @codeEnd
|
|
374
|
+
*
|
|
375
|
+
* @params
|
|
376
|
+
* @paramrow{1.,[out],revisionId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the revision id of the GPU is returned. @ENG_END_DOX}
|
|
377
|
+
*
|
|
378
|
+
* @retvalues
|
|
379
|
+
* @ENG_START_DOX
|
|
380
|
+
* If the revision id is successfully returned, __ADLX_OK__ is returned.<br>
|
|
381
|
+
* If the revision id is not successfully returned, an error code is returned.<br>
|
|
382
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
383
|
+
* @ENG_END_DOX
|
|
384
|
+
*
|
|
385
|
+
* @addinfo
|
|
386
|
+
* @ENG_START_DOX
|
|
387
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
388
|
+
* If the application uses the revision id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the revision id.
|
|
389
|
+
* @ENG_END_DOX
|
|
390
|
+
*
|
|
391
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
392
|
+
*
|
|
393
|
+
*/
|
|
394
|
+
virtual ADLX_RESULT ADLX_STD_CALL RevisionId(const char** revisionId) = 0;
|
|
395
|
+
/**
|
|
396
|
+
* @page DOX_IADLXGPU_SubSystemId SubSystemId
|
|
397
|
+
* @ENG_START_DOX@brief Gets the subsystem id of a GPU.@ENG_END_DOX
|
|
398
|
+
* @syntax
|
|
399
|
+
* @codeStart
|
|
400
|
+
* @ref ADLX_RESULT SubSystemId(const char** subSystemId)
|
|
401
|
+
* @codeEnd
|
|
402
|
+
*
|
|
403
|
+
* @params
|
|
404
|
+
* @paramrow{1.,[out],subSystemId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the subsystem id of the GPU is returned. @ENG_END_DOX}
|
|
405
|
+
*
|
|
406
|
+
* @retvalues
|
|
407
|
+
* @ENG_START_DOX
|
|
408
|
+
* If the subsystem id is successfully returned, __ADLX_OK__ is returned.<br>
|
|
409
|
+
* If the subsystem id is not successfully returned, an error code is returned.<br>
|
|
410
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
411
|
+
* @ENG_END_DOX
|
|
412
|
+
*
|
|
413
|
+
* @addinfo
|
|
414
|
+
* @ENG_START_DOX
|
|
415
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
416
|
+
* If the application uses the subsystem id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the subsystem id.
|
|
417
|
+
* @ENG_END_DOX
|
|
418
|
+
*
|
|
419
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
420
|
+
*
|
|
421
|
+
*/
|
|
422
|
+
virtual ADLX_RESULT ADLX_STD_CALL SubSystemId(const char** subSystemId) = 0;
|
|
423
|
+
/**
|
|
424
|
+
* @page DOX_IADLXGPU_SubSystemVendorId SubSystemVendorId
|
|
425
|
+
* @ENG_START_DOX@brief Gets the subsystem vendor id of a GPU.@ENG_END_DOX
|
|
426
|
+
* @syntax
|
|
427
|
+
* @codeStart
|
|
428
|
+
* @ref ADLX_RESULT SubSystemVendorId(const char** subSystemVendorId)
|
|
429
|
+
* @codeEnd
|
|
430
|
+
*
|
|
431
|
+
* @params
|
|
432
|
+
* @paramrow{1.,[out],subSystemVendorId,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the subsystem vendor id of the GPU is returned. @ENG_END_DOX}
|
|
433
|
+
*
|
|
434
|
+
* @retvalues
|
|
435
|
+
* @ENG_START_DOX
|
|
436
|
+
* If the subsystem vendor id is successfully returned, __ADLX_OK__ is returned.<br>
|
|
437
|
+
* If the subsystem vendor id is not successfully returned, an error code is returned.<br>
|
|
438
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
439
|
+
* @ENG_END_DOX
|
|
440
|
+
*
|
|
441
|
+
* @detaileddesc
|
|
442
|
+
* @ENG_START_DOX
|
|
443
|
+
* @details The subsystem vendor id is a predetermined value programmed into the GPU at the point of manufacturing and consists of four hexadecimal digits.
|
|
444
|
+
* @ENG_END_DOX
|
|
445
|
+
*
|
|
446
|
+
* @addinfo
|
|
447
|
+
* @ENG_START_DOX
|
|
448
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU interface.<br>
|
|
449
|
+
* If the application uses the subsystem vendor id beyond the lifetime of the @ref DOX_IADLXGPU interface, the application must make a copy of the subsystem vendor id.
|
|
450
|
+
* @ENG_END_DOX
|
|
451
|
+
*
|
|
452
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
453
|
+
*
|
|
454
|
+
*/
|
|
455
|
+
virtual ADLX_RESULT ADLX_STD_CALL SubSystemVendorId(const char** subSystemVendorId) = 0;
|
|
456
|
+
/**
|
|
457
|
+
* @page DOX_IADLXGPU_UniqueId UniqueId
|
|
458
|
+
* @ENG_START_DOX@brief Gets the unique id of a GPU.@ENG_END_DOX
|
|
459
|
+
* @syntax
|
|
460
|
+
* @codeStart
|
|
461
|
+
* @ref ADLX_RESULT UniqueId(adlx_int* uniqueId)
|
|
462
|
+
* @codeEnd
|
|
463
|
+
*
|
|
464
|
+
* @params
|
|
465
|
+
* @paramrow{1.,[out],uniqueId,adlx_int*,@ENG_START_DOX The pointer to a variable where the unique id of the GPU is returned. @ENG_END_DOX}
|
|
466
|
+
*
|
|
467
|
+
* @retvalues
|
|
468
|
+
* @ENG_START_DOX
|
|
469
|
+
* If the unique id is successfully returned, __ADLX_OK__ is returned.<br>
|
|
470
|
+
* If the unique id is not successfully returned, an error code is returned.<br>
|
|
471
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
472
|
+
* @ENG_END_DOX
|
|
473
|
+
*
|
|
474
|
+
* @copydoc IADLXGPU_REQ_TABLE
|
|
475
|
+
*
|
|
476
|
+
*/
|
|
477
|
+
virtual ADLX_RESULT ADLX_STD_CALL UniqueId(adlx_int* uniqueId) = 0;
|
|
478
|
+
}; //IADLXGPU
|
|
479
|
+
//----------------------------------------------------------------------------------------------
|
|
480
|
+
typedef IADLXInterfacePtr_T<IADLXGPU> IADLXGPUPtr;
|
|
481
|
+
} //namespace adlx
|
|
482
|
+
#else
|
|
483
|
+
ADLX_DECLARE_IID (IADLXGPU, L"IADLXGPU");
|
|
484
|
+
typedef struct IADLXGPU IADLXGPU;
|
|
485
|
+
|
|
486
|
+
typedef struct IADLXGPUVtbl
|
|
487
|
+
{
|
|
488
|
+
//IADLXInterface
|
|
489
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPU* pThis);
|
|
490
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXGPU* pThis);
|
|
491
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPU* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
492
|
+
|
|
493
|
+
//IADLXGPU
|
|
494
|
+
ADLX_RESULT (ADLX_STD_CALL *VendorId)(IADLXGPU* pThis, const char** vendorId);
|
|
495
|
+
ADLX_RESULT (ADLX_STD_CALL *ASICFamilyType)(IADLXGPU* pThis, ADLX_ASIC_FAMILY_TYPE* asicFamilyType);
|
|
496
|
+
ADLX_RESULT (ADLX_STD_CALL *Type)(IADLXGPU* pThis, ADLX_GPU_TYPE* gpuType);
|
|
497
|
+
ADLX_RESULT (ADLX_STD_CALL *IsExternal)(IADLXGPU* pThis, adlx_bool* isExternal);
|
|
498
|
+
ADLX_RESULT (ADLX_STD_CALL *Name)(IADLXGPU* pThis, const char** gpuName);
|
|
499
|
+
ADLX_RESULT (ADLX_STD_CALL *DriverPath)(IADLXGPU* pThis, const char** driverPath);
|
|
500
|
+
ADLX_RESULT (ADLX_STD_CALL *PNPString)(IADLXGPU* pThis, const char** pnpString);
|
|
501
|
+
ADLX_RESULT (ADLX_STD_CALL *HasDesktops)(IADLXGPU* pThis, adlx_bool* hasDesktops);
|
|
502
|
+
ADLX_RESULT (ADLX_STD_CALL *TotalVRAM)(IADLXGPU* pThis, adlx_uint* vramMB);
|
|
503
|
+
ADLX_RESULT (ADLX_STD_CALL *VRAMType)(IADLXGPU* pThis, const char** type);
|
|
504
|
+
ADLX_RESULT (ADLX_STD_CALL *BIOSInfo)(IADLXGPU* pThis, const char** partNumber, const char** version, const char** date);
|
|
505
|
+
ADLX_RESULT (ADLX_STD_CALL *DeviceId)(IADLXGPU* pThis, const char** deviceId);
|
|
506
|
+
ADLX_RESULT (ADLX_STD_CALL *RevisionId)(IADLXGPU* pThis, const char** revisionId);
|
|
507
|
+
ADLX_RESULT (ADLX_STD_CALL *SubSystemId)(IADLXGPU* pThis, const char** subSystemId);
|
|
508
|
+
ADLX_RESULT (ADLX_STD_CALL *SubSystemVendorId)(IADLXGPU* pThis, const char** subSystemVendorId);
|
|
509
|
+
ADLX_RESULT (ADLX_STD_CALL *UniqueId)(IADLXGPU* pThis, adlx_int* uniqueId);
|
|
510
|
+
} IADLXGPUVtbl;
|
|
511
|
+
|
|
512
|
+
struct IADLXGPU
|
|
513
|
+
{
|
|
514
|
+
const IADLXGPUVtbl *pVtbl;
|
|
515
|
+
};
|
|
516
|
+
#endif
|
|
517
|
+
#pragma endregion IADLXGPU interface
|
|
518
|
+
|
|
519
|
+
#pragma region IADLXGPUList interface
|
|
520
|
+
#if defined (__cplusplus)
|
|
521
|
+
namespace adlx
|
|
522
|
+
{
|
|
523
|
+
class ADLX_NO_VTABLE IADLXGPUList : public IADLXList
|
|
524
|
+
{
|
|
525
|
+
public:
|
|
526
|
+
ADLX_DECLARE_IID (L"IADLXGPUList")
|
|
527
|
+
//Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
|
|
528
|
+
ADLX_DECLARE_ITEM_IID (IADLXGPU::IID ())
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* @page DOX_IADLXGPUList_At At
|
|
532
|
+
* @ENG_START_DOX
|
|
533
|
+
* @brief Returns the reference counted interface at the requested location.
|
|
534
|
+
* @ENG_END_DOX
|
|
535
|
+
* @syntax
|
|
536
|
+
* @codeStart
|
|
537
|
+
* @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXGPU** ppItem)
|
|
538
|
+
* @codeEnd
|
|
539
|
+
*
|
|
540
|
+
* @params
|
|
541
|
+
* @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
|
|
542
|
+
* @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXGPU** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX}
|
|
543
|
+
*
|
|
544
|
+
* @retvalues
|
|
545
|
+
* @ENG_START_DOX
|
|
546
|
+
* If the location is within the list bounds, __ADLX_OK__ is returned.<br>
|
|
547
|
+
* If the location is not within the list bounds, an error code is returned.<br>
|
|
548
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
549
|
+
* @ENG_END_DOX
|
|
550
|
+
*
|
|
551
|
+
* @detaileddesc
|
|
552
|
+
* @ENG_START_DOX
|
|
553
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
554
|
+
* @ENG_END_DOX
|
|
555
|
+
*
|
|
556
|
+
* @addinfo
|
|
557
|
+
* @ENG_START_DOX
|
|
558
|
+
* In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation.
|
|
559
|
+
* @ENG_END_DOX
|
|
560
|
+
*
|
|
561
|
+
* @copydoc IADLXGPUList_REQ_TABLE
|
|
562
|
+
*
|
|
563
|
+
*/
|
|
564
|
+
virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXGPU** ppItem) = 0;
|
|
565
|
+
/**
|
|
566
|
+
* @page DOX_IADLXGPUList_Add_Back Add_Back
|
|
567
|
+
* @ENG_START_DOX
|
|
568
|
+
* @brief Adds an interface to the end of a list.
|
|
569
|
+
* @ENG_END_DOX
|
|
570
|
+
* @syntax
|
|
571
|
+
* @codeStart
|
|
572
|
+
* @ref ADLX_RESULT Add_Back (@ref DOX_IADLXGPU* pItem)
|
|
573
|
+
* @codeEnd
|
|
574
|
+
*
|
|
575
|
+
* @params
|
|
576
|
+
* @paramrow{1.,[in] ,pItem,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
|
|
577
|
+
*
|
|
578
|
+
* @retvalues
|
|
579
|
+
* @ENG_START_DOX
|
|
580
|
+
* If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.<br>
|
|
581
|
+
* If the interface is not added to the end of the list, an error code is returned.<br>
|
|
582
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
583
|
+
* @ENG_END_DOX
|
|
584
|
+
*
|
|
585
|
+
* @detaileddesc
|
|
586
|
+
* @ENG_START_DOX
|
|
587
|
+
* @details
|
|
588
|
+
* @ENG_END_DOX
|
|
589
|
+
*
|
|
590
|
+
*
|
|
591
|
+
* @copydoc IADLXGPUList_REQ_TABLE
|
|
592
|
+
*
|
|
593
|
+
*/
|
|
594
|
+
virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXGPU* pItem) = 0;
|
|
595
|
+
}; //IADLXGPUList
|
|
596
|
+
//----------------------------------------------------------------------------------------------
|
|
597
|
+
typedef IADLXInterfacePtr_T<IADLXGPUList> IADLXGPUListPtr;
|
|
598
|
+
} //namespace adlx
|
|
599
|
+
#else
|
|
600
|
+
ADLX_DECLARE_IID (IADLXGPUList, L"IADLXGPUList")
|
|
601
|
+
ADLX_DECLARE_ITEM_IID (IADLXGPU, IID_IADLXGPU ())
|
|
602
|
+
|
|
603
|
+
typedef struct IADLXGPUList IADLXGPUList;
|
|
604
|
+
|
|
605
|
+
typedef struct IADLXGPUListVtbl
|
|
606
|
+
{
|
|
607
|
+
//IADLXInterface
|
|
608
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUList* pThis);
|
|
609
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXGPUList* pThis);
|
|
610
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUList* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
611
|
+
|
|
612
|
+
//IADLXList
|
|
613
|
+
adlx_uint (ADLX_STD_CALL *Size)(IADLXGPUList* pThis);
|
|
614
|
+
adlx_uint8 (ADLX_STD_CALL *Empty)(IADLXGPUList* pThis);
|
|
615
|
+
adlx_uint (ADLX_STD_CALL *Begin)(IADLXGPUList* pThis);
|
|
616
|
+
adlx_uint (ADLX_STD_CALL *End)(IADLXGPUList* pThis);
|
|
617
|
+
ADLX_RESULT (ADLX_STD_CALL *At)(IADLXGPUList* pThis, const adlx_uint location, IADLXInterface** ppItem);
|
|
618
|
+
ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXGPUList* pThis);
|
|
619
|
+
ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXGPUList* pThis);
|
|
620
|
+
ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXGPUList* pThis, IADLXInterface* pItem);
|
|
621
|
+
|
|
622
|
+
//IADLXGPUList
|
|
623
|
+
ADLX_RESULT (ADLX_STD_CALL *At_GPUList)(IADLXGPUList* pThis, const adlx_uint location, IADLXGPU** ppItem);
|
|
624
|
+
ADLX_RESULT (ADLX_STD_CALL *Add_Back_GPUList)(IADLXGPUList* pThis, IADLXGPU* pItem);
|
|
625
|
+
|
|
626
|
+
} IADLXGPUListVtbl;
|
|
627
|
+
|
|
628
|
+
struct IADLXGPUList
|
|
629
|
+
{
|
|
630
|
+
const IADLXGPUListVtbl *pVtbl;
|
|
631
|
+
};
|
|
632
|
+
|
|
633
|
+
#endif
|
|
634
|
+
#pragma endregion IADLXGPUList interface
|
|
635
|
+
|
|
636
|
+
#pragma region IADLXGPUsChangedHandling interface
|
|
637
|
+
#if defined (__cplusplus)
|
|
638
|
+
namespace adlx
|
|
639
|
+
{
|
|
640
|
+
class ADLX_NO_VTABLE IADLXGPUsEventListener
|
|
641
|
+
{
|
|
642
|
+
public:
|
|
643
|
+
/**
|
|
644
|
+
*@page DOX_IADLXGPUsEventListener_OnGPUListChanged OnGPUListChanged
|
|
645
|
+
*@ENG_START_DOX @brief The __OnGPUListChanged__ is called by ADLX when the GPU list changes. @ENG_END_DOX
|
|
646
|
+
*
|
|
647
|
+
*@syntax
|
|
648
|
+
*@codeStart
|
|
649
|
+
* adlx_bool OnGPUListChanged (@ref DOX_IADLXGPUList* pNewGPUs)
|
|
650
|
+
*@codeEnd
|
|
651
|
+
*
|
|
652
|
+
*@params
|
|
653
|
+
*@paramrow{1.,[out] ,pNewGPUs,@ref DOX_IADLXGPUList* ,@ENG_START_DOX The pointer to the new GPU list. @ENG_END_DOX}
|
|
654
|
+
*
|
|
655
|
+
*
|
|
656
|
+
*@retvalues
|
|
657
|
+
*@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.<br>
|
|
658
|
+
* If the application requires ADLX to stop notifying the next listener, __false__ must be returned.<br> @ENG_END_DOX
|
|
659
|
+
*
|
|
660
|
+
*@detaileddesc
|
|
661
|
+
*@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLXGPUsChangedHandling_AddGPUsListEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXGPUsChangedHandling_RemoveGPUsListEventListener.<br>
|
|
662
|
+
* The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the new GPU list with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the new GPU list with @ref DOX_IADLXInterface_Release. @ENG_END_DOX
|
|
663
|
+
*
|
|
664
|
+
*
|
|
665
|
+
*@copydoc IADLXGPUsEventListener_REQ_TABLE
|
|
666
|
+
*
|
|
667
|
+
*/
|
|
668
|
+
virtual adlx_bool ADLX_STD_CALL OnGPUListChanged (IADLXGPUList* pNewGPUs) = 0;
|
|
669
|
+
};
|
|
670
|
+
|
|
671
|
+
class ADLX_NO_VTABLE IADLXGPUsChangedHandling : public IADLXInterface
|
|
672
|
+
{
|
|
673
|
+
public:
|
|
674
|
+
ADLX_DECLARE_IID (L"IADLXGPUsChangedHandling")
|
|
675
|
+
/**
|
|
676
|
+
*@page DOX_IADLXGPUsChangedHandling_AddGPUsListEventListener AddGPUsListEventListener
|
|
677
|
+
*@ENG_START_DOX @brief Registers an event listener for notifications when the GPU list changes. @ENG_END_DOX
|
|
678
|
+
*
|
|
679
|
+
*@syntax
|
|
680
|
+
*@codeStart
|
|
681
|
+
* @ref ADLX_RESULT AddGPUsListEventListener (@ref DOX_IADLXGPUsEventListener* pListener)
|
|
682
|
+
*@codeEnd
|
|
683
|
+
*
|
|
684
|
+
*@params
|
|
685
|
+
*@paramrow{1.,[in] ,pListener,@ref DOX_IADLXGPUsEventListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the GPU list change notifications. @ENG_END_DOX}
|
|
686
|
+
*
|
|
687
|
+
*@retvalues
|
|
688
|
+
*@ENG_START_DOX If the event listener is successfully registered, __ADLX_OK__ is returned.<br>
|
|
689
|
+
* If the event listener is not successfully registered, an error code is returned.<br>
|
|
690
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
691
|
+
*
|
|
692
|
+
*@detaileddesc
|
|
693
|
+
*@ENG_START_DOX After the event listener is successfully registered, ADLX will call @ref DOX_IADLXGPUsEventListener_OnGPUListChanged of the listener when the GPU list changes.<br>
|
|
694
|
+
* The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXGPUsChangedHandling_RemoveGPUsListEventListener.<br> @ENG_END_DOX
|
|
695
|
+
*
|
|
696
|
+
*
|
|
697
|
+
*@copydoc IADLXGPUsChangedHandling_REQ_TABLE
|
|
698
|
+
*
|
|
699
|
+
*/
|
|
700
|
+
virtual ADLX_RESULT ADLX_STD_CALL AddGPUsListEventListener(IADLXGPUsEventListener* pListener) = 0;
|
|
701
|
+
/**
|
|
702
|
+
*@page DOX_IADLXGPUsChangedHandling_RemoveGPUsListEventListener RemoveGPUsListEventListener
|
|
703
|
+
*@ENG_START_DOX @brief Unregisters an event listener from notifications when the GPU list changes. @ENG_END_DOX
|
|
704
|
+
*
|
|
705
|
+
*@syntax
|
|
706
|
+
*@codeStart
|
|
707
|
+
* @ref ADLX_RESULT RemoveGPUsListEventListener (@ref DOX_IADLXGPUsEventListener* pListener)
|
|
708
|
+
*@codeEnd
|
|
709
|
+
*
|
|
710
|
+
*@params
|
|
711
|
+
*@paramrow{1.,[in] ,pListener,@ref DOX_IADLXGPUsEventListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the GPU list change notifications. @ENG_END_DOX}
|
|
712
|
+
*
|
|
713
|
+
*
|
|
714
|
+
*@retvalues
|
|
715
|
+
*@ENG_START_DOX If the event listener is successfully unregistered, __ADLX_OK__ is returned.<br>
|
|
716
|
+
* If the event listener is not successfully unregistered, an error code is returned.<br>
|
|
717
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
718
|
+
*
|
|
719
|
+
*@detaileddesc
|
|
720
|
+
*@ENG_START_DOX After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXGPUsEventListener_OnGPUListChanged method of the listener when the GPU list changes. The application can discard the event listener instance. @ENG_END_DOX
|
|
721
|
+
*
|
|
722
|
+
*
|
|
723
|
+
*@copydoc IADLXGPUsChangedHandling_REQ_TABLE
|
|
724
|
+
*
|
|
725
|
+
*/
|
|
726
|
+
virtual ADLX_RESULT ADLX_STD_CALL RemoveGPUsListEventListener(IADLXGPUsEventListener* pListener) = 0;
|
|
727
|
+
};
|
|
728
|
+
|
|
729
|
+
//------------------------------------------------------------------------------------
|
|
730
|
+
typedef IADLXInterfacePtr_T<IADLXGPUsChangedHandling> IADLXGPUsChangedHandlingPtr;
|
|
731
|
+
}
|
|
732
|
+
#else
|
|
733
|
+
ADLX_DECLARE_IID (IADLXGPUsChangedHandling, L"IADLXGPUsChangedHandling")
|
|
734
|
+
typedef struct IADLXGPUsEventListener IADLXGPUsEventListener;
|
|
735
|
+
|
|
736
|
+
typedef struct IADLXGPUsEventListenerVtbl
|
|
737
|
+
{
|
|
738
|
+
// IADLXGPUsEventListener interface
|
|
739
|
+
adlx_bool (ADLX_STD_CALL *OnGPUListChanged)(IADLXGPUsEventListener* pThis, IADLXGPUList* pNewGPUs);
|
|
740
|
+
} IADLXGPUsEventListenerVtbl;
|
|
741
|
+
|
|
742
|
+
struct IADLXGPUsEventListener
|
|
743
|
+
{
|
|
744
|
+
const IADLXGPUsEventListenerVtbl *pVtbl;
|
|
745
|
+
};
|
|
746
|
+
|
|
747
|
+
typedef struct IADLXGPUsChangedHandling IADLXGPUsChangedHandling;
|
|
748
|
+
|
|
749
|
+
typedef struct IADLXGPUsChangedHandlingVtbl
|
|
750
|
+
{
|
|
751
|
+
// IADLXInterface
|
|
752
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUsChangedHandling* pThis);
|
|
753
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXGPUsChangedHandling* pThis);
|
|
754
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUsChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
755
|
+
|
|
756
|
+
// IADLXGPUsChangedHandling
|
|
757
|
+
ADLX_RESULT (ADLX_STD_CALL *AddGPUsListEventListener)(IADLXGPUsChangedHandling* pThis, IADLXGPUsEventListener* pListener);
|
|
758
|
+
ADLX_RESULT (ADLX_STD_CALL *RemoveGPUsListEventListener)(IADLXGPUsChangedHandling* pThis, IADLXGPUsEventListener* pListener);
|
|
759
|
+
|
|
760
|
+
} IADLXGPUsChangedHandlingVtbl;
|
|
761
|
+
|
|
762
|
+
struct IADLXGPUsChangedHandling
|
|
763
|
+
{
|
|
764
|
+
const IADLXGPUsChangedHandlingVtbl *pVtbl;
|
|
765
|
+
};
|
|
766
|
+
|
|
767
|
+
#endif
|
|
768
|
+
#pragma endregion IADLXGPUsChangedHandling interface
|
|
769
|
+
|
|
770
|
+
//IADLXSystem is a singleton interface, should not be deleted
|
|
771
|
+
#pragma region IADLXSystem interface
|
|
772
|
+
#if defined (__cplusplus)
|
|
773
|
+
namespace adlx
|
|
774
|
+
{
|
|
775
|
+
class ADLX_NO_VTABLE IADLXDesktopServices;
|
|
776
|
+
class ADLX_NO_VTABLE IADLXDisplayServices;
|
|
777
|
+
class ADLX_NO_VTABLE IADLXLog;
|
|
778
|
+
class ADLX_NO_VTABLE IADLX3DSettingsServices;
|
|
779
|
+
class ADLX_NO_VTABLE IADLXGPUTuningServices;
|
|
780
|
+
class ADLX_NO_VTABLE IADLXPerformanceMonitoringServices;
|
|
781
|
+
class ADLX_NO_VTABLE IADLXI2C;
|
|
782
|
+
|
|
783
|
+
class ADLX_NO_VTABLE IADLXSystem
|
|
784
|
+
{
|
|
785
|
+
public:
|
|
786
|
+
/**
|
|
787
|
+
* @page DOX_IADLXSystem_HybridGraphicsType HybridGraphicsType
|
|
788
|
+
* @ENG_START_DOX
|
|
789
|
+
* @brief Gets the hybrid graphics type of the system.
|
|
790
|
+
* @ENG_END_DOX
|
|
791
|
+
* @syntax
|
|
792
|
+
* @codeStart
|
|
793
|
+
* @ref ADLX_RESULT HybridGraphicsType (@ref ADLX_HG_TYPE* hgType)
|
|
794
|
+
* @codeEnd
|
|
795
|
+
*
|
|
796
|
+
* @params
|
|
797
|
+
* @paramrow{1.,[out] ,hgType,@ref ADLX_HG_TYPE* ,@ENG_START_DOX The pointer to a variable where the hybrid graphics type is returned. @ENG_END_DOX}
|
|
798
|
+
*
|
|
799
|
+
* @retvalues
|
|
800
|
+
* @ENG_START_DOX
|
|
801
|
+
* If the hybrid graphics type is successfully returned, __ADLX_OK__ is returned. <br>
|
|
802
|
+
* If the hybrid graphics type is not successfully returned, an error code is returned. <br>
|
|
803
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
804
|
+
* @ENG_END_DOX
|
|
805
|
+
*
|
|
806
|
+
* @detaileddesc
|
|
807
|
+
* @ENG_START_DOX
|
|
808
|
+
* @details The hybrid graphics type can be used to discover if the system is a hybrid graphics platform.
|
|
809
|
+
* Hybrid graphics platforms share cross-adapter resources between a discrete GPU and an integrated GPU. Applications can run on either GPU depending on their needs. The operating system and the AMD display driver together determine which GPU an application should run on.
|
|
810
|
+
*
|
|
811
|
+
* On an AMD hybrid graphics platform, the integrated GPU can be an AMD integrated GPU or a non-AMD integrated GPU.
|
|
812
|
+
*
|
|
813
|
+
* @ENG_END_DOX
|
|
814
|
+
*
|
|
815
|
+
*
|
|
816
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
817
|
+
*
|
|
818
|
+
*/
|
|
819
|
+
virtual ADLX_RESULT ADLX_STD_CALL HybridGraphicsType (ADLX_HG_TYPE* hgType) = 0;
|
|
820
|
+
/**
|
|
821
|
+
* @page DOX_IADLXSystem_GetGPUs GetGPUs
|
|
822
|
+
* @ENG_START_DOX
|
|
823
|
+
* @brief Gets the reference counted list of AMD GPUs.
|
|
824
|
+
* @ENG_END_DOX
|
|
825
|
+
* @syntax
|
|
826
|
+
* @codeStart
|
|
827
|
+
* @ref ADLX_RESULT GetGPUs (@ref DOX_IADLXGPUList** ppGPUs)
|
|
828
|
+
* @codeEnd
|
|
829
|
+
*
|
|
830
|
+
* @params
|
|
831
|
+
* @paramrow{1.,[out] ,ppGPUs,@ref DOX_IADLXGPUList** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppGPUs__ to __nullptr__. @ENG_END_DOX}
|
|
832
|
+
*
|
|
833
|
+
* @retvalues
|
|
834
|
+
* @ENG_START_DOX
|
|
835
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
836
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
837
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
838
|
+
* @ENG_END_DOX
|
|
839
|
+
*
|
|
840
|
+
* @detaileddesc
|
|
841
|
+
* @ENG_START_DOX
|
|
842
|
+
* @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support".<br>
|
|
843
|
+
* The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
844
|
+
* @ENG_END_DOX
|
|
845
|
+
*
|
|
846
|
+
*@addinfo
|
|
847
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
848
|
+
*
|
|
849
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
850
|
+
*
|
|
851
|
+
*/
|
|
852
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetGPUs (IADLXGPUList** ppGPUs) = 0;
|
|
853
|
+
/**
|
|
854
|
+
* @page DOX_IADLXSystem_QueryInterface QueryInterface
|
|
855
|
+
* @ENG_START_DOX
|
|
856
|
+
* @brief Gets reference counted extension interfaces to @ref DOX_IADLXSystem.
|
|
857
|
+
* @ENG_END_DOX
|
|
858
|
+
*
|
|
859
|
+
* @syntax
|
|
860
|
+
* @codeStart
|
|
861
|
+
* @ref ADLX_RESULT QueryInterface (const wchar_t* interfaceId, void** ppInterface)
|
|
862
|
+
* @codeEnd
|
|
863
|
+
*
|
|
864
|
+
* @params
|
|
865
|
+
* @paramrow{1.,[in] ,interfaceId,const wchar_t*,@ENG_START_DOX The identifier of the interface being requested. @ENG_END_DOX}
|
|
866
|
+
* @paramrow{2.,[out],ppInterface,void**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppInterface__ to __nullptr__. @ENG_END_DOX}
|
|
867
|
+
*
|
|
868
|
+
* @retvalues
|
|
869
|
+
* @ENG_START_DOX
|
|
870
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
871
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
872
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
873
|
+
* @ENG_END_DOX
|
|
874
|
+
*
|
|
875
|
+
* @detaileddesc
|
|
876
|
+
* @ENG_START_DOX
|
|
877
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
878
|
+
* @ENG_END_DOX
|
|
879
|
+
*
|
|
880
|
+
*
|
|
881
|
+
* @addinfo
|
|
882
|
+
* @ENG_START_DOX
|
|
883
|
+
* In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
|
|
884
|
+
* @ENG_END_DOX
|
|
885
|
+
*
|
|
886
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
887
|
+
*
|
|
888
|
+
*/
|
|
889
|
+
virtual ADLX_RESULT ADLX_STD_CALL QueryInterface (const wchar_t* interfaceId, void** ppInterface) = 0;
|
|
890
|
+
/**
|
|
891
|
+
* @page DOX_IADLXSystem_GetDisplaysServices GetDisplaysServices
|
|
892
|
+
* @ENG_START_DOX
|
|
893
|
+
* @brief Gets the reference counted main interface to the @ref DOX_IADLXDisplayServices "Display" domain.
|
|
894
|
+
* @ENG_END_DOX
|
|
895
|
+
*
|
|
896
|
+
* @syntax
|
|
897
|
+
* @codeStart
|
|
898
|
+
* @ref ADLX_RESULT GetDisplaysServices (@ref DOX_IADLXDisplayServices** ppDispServices)
|
|
899
|
+
* @codeEnd
|
|
900
|
+
*
|
|
901
|
+
* @params
|
|
902
|
+
* @paramrow{1.,[out] ,ppDispServices,@ref DOX_IADLXDisplayServices**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDispServices__ to __nullptr__. @ENG_END_DOX}
|
|
903
|
+
*
|
|
904
|
+
* @retvalues
|
|
905
|
+
* @ENG_START_DOX
|
|
906
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
907
|
+
* If the interface is not returned, an error code is returned.<br>
|
|
908
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
909
|
+
* @ENG_END_DOX
|
|
910
|
+
*
|
|
911
|
+
* @detaileddesc
|
|
912
|
+
* @ENG_START_DOX
|
|
913
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
914
|
+
* @ENG_END_DOX
|
|
915
|
+
*
|
|
916
|
+
* @addinfo
|
|
917
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
918
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
919
|
+
*
|
|
920
|
+
*/
|
|
921
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetDisplaysServices(IADLXDisplayServices** ppDispServices) = 0;
|
|
922
|
+
/**
|
|
923
|
+
* @page DOX_IADLXSystem_GetDesktopsServices GetDesktopsServices
|
|
924
|
+
* @ENG_START_DOX
|
|
925
|
+
* @brief Gets the reference counted main interface to the @ref DOX_IADLXDesktopServices "Desktop" domain.
|
|
926
|
+
* @ENG_END_DOX
|
|
927
|
+
*
|
|
928
|
+
* @syntax
|
|
929
|
+
* @codeStart
|
|
930
|
+
* @ref ADLX_RESULT GetDesktopsServices (@ref DOX_IADLXDesktopServices** ppDeskServices)
|
|
931
|
+
* @codeEnd
|
|
932
|
+
*
|
|
933
|
+
* @params
|
|
934
|
+
* @paramrow{1.,[out] ,ppDeskServices,@ref DOX_IADLXDesktopServices**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppDeskServices__ to __nullptr__. @ENG_END_DOX}
|
|
935
|
+
*
|
|
936
|
+
* @retvalues
|
|
937
|
+
* @ENG_START_DOX
|
|
938
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
939
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
940
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
941
|
+
* @ENG_END_DOX
|
|
942
|
+
*
|
|
943
|
+
* @detaileddesc
|
|
944
|
+
* @ENG_START_DOX
|
|
945
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
946
|
+
* @ENG_END_DOX
|
|
947
|
+
*
|
|
948
|
+
* @addinfo
|
|
949
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
950
|
+
*
|
|
951
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
952
|
+
*
|
|
953
|
+
*/
|
|
954
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetDesktopsServices(IADLXDesktopServices** ppDeskServices) = 0;
|
|
955
|
+
|
|
956
|
+
/**
|
|
957
|
+
* @page DOX_IADLXSystem_GetGPUsChangedHandling GetGPUsChangedHandling
|
|
958
|
+
* @ENG_START_DOX
|
|
959
|
+
* @brief Gets the reference counted interface to allow registering and unregistering for notifications when the GPU list changes.
|
|
960
|
+
* @ENG_END_DOX
|
|
961
|
+
*
|
|
962
|
+
* @syntax
|
|
963
|
+
* @codeStart
|
|
964
|
+
* @ref ADLX_RESULT GetGPUsChangedHandling (@ref DOX_IADLXGPUsChangedHandling** ppGPUsChangedHandling)
|
|
965
|
+
* @codeEnd
|
|
966
|
+
*
|
|
967
|
+
* @params
|
|
968
|
+
* @paramrow{1.,[out] ,ppGPUsChangedHandling,@ref DOX_IADLXGPUsChangedHandling**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppGPUsChangedHandling__ to __nullptr__. @ENG_END_DOX}
|
|
969
|
+
*
|
|
970
|
+
* @retvalues
|
|
971
|
+
* @ENG_START_DOX
|
|
972
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
973
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
974
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
975
|
+
* @ENG_END_DOX
|
|
976
|
+
*
|
|
977
|
+
* @detaileddesc
|
|
978
|
+
* @ENG_START_DOX
|
|
979
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
980
|
+
* @ENG_END_DOX
|
|
981
|
+
*
|
|
982
|
+
*@addinfo
|
|
983
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
984
|
+
*
|
|
985
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
986
|
+
*
|
|
987
|
+
*/
|
|
988
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetGPUsChangedHandling (IADLXGPUsChangedHandling** ppGPUsChangedHandling) = 0;
|
|
989
|
+
/**
|
|
990
|
+
* @page DOX_IADLXSystem_EnableLog EnableLog
|
|
991
|
+
* @ENG_START_DOX
|
|
992
|
+
* @brief Enables logging in ADLX.
|
|
993
|
+
* @ENG_END_DOX
|
|
994
|
+
*
|
|
995
|
+
* @syntax
|
|
996
|
+
* @codeStart
|
|
997
|
+
* @ref ADLX_RESULT EnableLog (@ref ADLX_LOG_DESTINATION mode, @ref ADLX_LOG_SEVERITY severity, @ref DOX_IADLXLog* pLogger, const wchar_t* fileName)
|
|
998
|
+
* @codeEnd
|
|
999
|
+
*
|
|
1000
|
+
* @params
|
|
1001
|
+
* @paramrow{1.,[in] ,mode,@ref ADLX_LOG_DESTINATION,@ENG_START_DOX The log destination. @ENG_END_DOX}
|
|
1002
|
+
* @paramrow{2.,[in] ,severity,@ref ADLX_LOG_SEVERITY,@ENG_START_DOX The logging severity. @ENG_END_DOX}
|
|
1003
|
+
* @paramrow{3.,[in] ,pLogger,@ref DOX_IADLXLog*,@ENG_START_DOX The pointer to the log interface to receive log messages from ADLX. @ENG_END_DOX}
|
|
1004
|
+
* @paramrow{4.,[in] ,fileName,const wchar_t*,@ENG_START_DOX The zero-terminated string that specifies the path of the log file. @ENG_END_DOX}
|
|
1005
|
+
*
|
|
1006
|
+
* @retvalues
|
|
1007
|
+
* @ENG_START_DOX
|
|
1008
|
+
* If __EnableLog__ is successfully executed, __ADLX_OK__ is returned. <br>
|
|
1009
|
+
* If __EnableLog__ is not successfully executed, an error code is returned. <br>
|
|
1010
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1011
|
+
* @ENG_END_DOX
|
|
1012
|
+
*
|
|
1013
|
+
* @detaileddesc
|
|
1014
|
+
* @ENG_START_DOX
|
|
1015
|
+
* @details By default, ADLX logging is disabled.
|
|
1016
|
+
* Use __EnableLog__ to configure log destination and severity.
|
|
1017
|
+
*
|
|
1018
|
+
* - To configure the log destination into a file, specify the __mode__ parameter as __LOCALFILE__ and provide the file path in the __filename__ parameter. The __pLogger__ parameter must be __nullptr__. <br>
|
|
1019
|
+
* - To configure the log destination into the output window of the debugger, specify the __mode__ parameter as __DBGVIEW__. The __filename__ and __pLogger__ parameters must be __nullptr__.<br>
|
|
1020
|
+
* - To configure the log destination to be sent as a string into the application, specify the __mode__ parameter as __APPLICATION__. Implement the @ref DOX_IADLXLog interface in the application and pass a pointer to an instance of that interface into the __pLogger__ parameter. The log instance must exist until ADLX is terminated. The __filename__ parameter must be __nullptr__.<br>
|
|
1021
|
+
* - To obtain the error messages in the ADLX execution code, specify the __severity__ parameter as __LERROR__.<br>
|
|
1022
|
+
* - To obtain the error and warning messages in the ADLX execution code, specify the __severity__ parameter as __LWARNING__.<br>
|
|
1023
|
+
* - To obtain error, warning, and debug tracing messages in the ADLX execution code, specify the __severity__ parameter as __LDEBUG__.
|
|
1024
|
+
* @ENG_END_DOX
|
|
1025
|
+
*
|
|
1026
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
1027
|
+
*
|
|
1028
|
+
*/
|
|
1029
|
+
virtual ADLX_RESULT ADLX_STD_CALL EnableLog (ADLX_LOG_DESTINATION mode, ADLX_LOG_SEVERITY severity, IADLXLog* pLogger, const wchar_t* fileName) = 0;
|
|
1030
|
+
|
|
1031
|
+
/**
|
|
1032
|
+
* @page DOX_IADLXSystem_Get3DSettingsServices Get3DSettingsServices
|
|
1033
|
+
* @ENG_START_DOX
|
|
1034
|
+
* @brief Gets the reference counted main interface to the @ref DOX_IADLX3DSettingsServices "3D Graphics" domain.
|
|
1035
|
+
* @ENG_END_DOX
|
|
1036
|
+
*
|
|
1037
|
+
* @syntax
|
|
1038
|
+
* @codeStart
|
|
1039
|
+
* @ref ADLX_RESULT Get3DSettingsServices (@ref DOX_IADLX3DSettingsServices** pp3DSettingsServices)
|
|
1040
|
+
* @codeEnd
|
|
1041
|
+
*
|
|
1042
|
+
* @params
|
|
1043
|
+
* @paramrow{1.,[out] ,pp3DSettingsServices,@ref DOX_IADLX3DSettingsServices**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*pp3DSettingsServices__ to __nullptr__. @ENG_END_DOX}
|
|
1044
|
+
*
|
|
1045
|
+
* @retvalues
|
|
1046
|
+
* @ENG_START_DOX
|
|
1047
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
1048
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
1049
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1050
|
+
* @ENG_END_DOX
|
|
1051
|
+
*
|
|
1052
|
+
* @detaileddesc
|
|
1053
|
+
* @ENG_START_DOX
|
|
1054
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
1055
|
+
* @ENG_END_DOX
|
|
1056
|
+
*
|
|
1057
|
+
*@addinfo
|
|
1058
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
1059
|
+
*
|
|
1060
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
1061
|
+
*
|
|
1062
|
+
*/
|
|
1063
|
+
virtual ADLX_RESULT ADLX_STD_CALL Get3DSettingsServices (IADLX3DSettingsServices** pp3DSettingsServices) = 0;
|
|
1064
|
+
|
|
1065
|
+
/**
|
|
1066
|
+
* @page DOX_IADLXSystem_GetGPUTuningServices GetGPUTuningServices
|
|
1067
|
+
* @ENG_START_DOX
|
|
1068
|
+
* @brief Gets the reference counted main interface to the @ref DOX_IADLXGPUTuningServices "GPU Tuning" domain.
|
|
1069
|
+
* @ENG_END_DOX
|
|
1070
|
+
*
|
|
1071
|
+
* @syntax
|
|
1072
|
+
* @codeStart
|
|
1073
|
+
* @ref ADLX_RESULT GetGPUTuningServices (@ref DOX_IADLXGPUTuningServices** ppGPUTuningServices)
|
|
1074
|
+
* @codeEnd
|
|
1075
|
+
*
|
|
1076
|
+
* @params
|
|
1077
|
+
* @paramrow{1.,[out] ,ppGPUTuningServices,@ref DOX_IADLXGPUTuningServices**,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppGPUTuningServices__ to __nullptr__. @ENG_END_DOX}
|
|
1078
|
+
*
|
|
1079
|
+
* @retvalues
|
|
1080
|
+
* @ENG_START_DOX
|
|
1081
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
1082
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
1083
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1084
|
+
* @ENG_END_DOX
|
|
1085
|
+
*
|
|
1086
|
+
* @detaileddesc
|
|
1087
|
+
* @ENG_START_DOX
|
|
1088
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
1089
|
+
* @ENG_END_DOX
|
|
1090
|
+
*
|
|
1091
|
+
*@addinfo
|
|
1092
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
1093
|
+
*
|
|
1094
|
+
* @copydoc IADLXSystem_REQ_TABLE
|
|
1095
|
+
*
|
|
1096
|
+
*/
|
|
1097
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetGPUTuningServices (IADLXGPUTuningServices** ppGPUTuningServices) = 0;
|
|
1098
|
+
|
|
1099
|
+
/**
|
|
1100
|
+
*@page DOX_IADLXSystem_GetPerformanceMonitoringServices GetPerformanceMonitoringServices
|
|
1101
|
+
*@ENG_START_DOX @brief Gets the reference counted main interface to the @ref DOX_IADLXPerformanceMonitoringServices "Performance Monitoring" domain. @ENG_END_DOX
|
|
1102
|
+
*
|
|
1103
|
+
*@syntax
|
|
1104
|
+
*@codeStart
|
|
1105
|
+
* @ref ADLX_RESULT GetPerformanceMonitoringServices (@ref DOX_IADLXPerformanceMonitoringServices** ppPerformanceMonitoringServices)
|
|
1106
|
+
*@codeEnd
|
|
1107
|
+
*
|
|
1108
|
+
*@params
|
|
1109
|
+
*@paramrow{1.,[out] ,ppPerformanceMonitoringServices,@ref DOX_IADLXPerformanceMonitoringServices** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppPerformanceMonitoringServices__ to __nullptr__. @ENG_END_DOX}
|
|
1110
|
+
*
|
|
1111
|
+
*@retvalues
|
|
1112
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1113
|
+
* If the interface is not successfully returned, an error code is returned. <br>
|
|
1114
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
|
|
1115
|
+
*
|
|
1116
|
+
*@detaileddesc
|
|
1117
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
1118
|
+
*
|
|
1119
|
+
* @addinfo
|
|
1120
|
+
* @ENG_START_DOX
|
|
1121
|
+
* In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation.
|
|
1122
|
+
* @ENG_END_DOX
|
|
1123
|
+
*
|
|
1124
|
+
*@copydoc IADLXSystem_REQ_TABLE
|
|
1125
|
+
*
|
|
1126
|
+
*/
|
|
1127
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetPerformanceMonitoringServices (IADLXPerformanceMonitoringServices** ppPerformanceMonitoringServices) = 0;
|
|
1128
|
+
|
|
1129
|
+
/**
|
|
1130
|
+
*@page DOX_IADLXSystem_TotalSystemRAM TotalSystemRAM
|
|
1131
|
+
*@ENG_START_DOX @brief Gets the size of the total RAM on this system. @ENG_END_DOX
|
|
1132
|
+
*
|
|
1133
|
+
*@syntax
|
|
1134
|
+
*@codeStart
|
|
1135
|
+
* @ref ADLX_RESULT TotalSystemRAM (adlx_uint* ramMB)
|
|
1136
|
+
*@codeEnd
|
|
1137
|
+
*
|
|
1138
|
+
*@params
|
|
1139
|
+
*@paramrow{1.,[out] ,ramMB,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the total system RAM size is returned\, in MB. @ENG_END_DOX}
|
|
1140
|
+
*
|
|
1141
|
+
*@retvalues
|
|
1142
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1143
|
+
* If the interface is not successfully returned, an error code is returned. <br>
|
|
1144
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
|
|
1145
|
+
*
|
|
1146
|
+
*@copydoc IADLXSystem_REQ_TABLE
|
|
1147
|
+
*
|
|
1148
|
+
*/
|
|
1149
|
+
virtual ADLX_RESULT ADLX_STD_CALL TotalSystemRAM (adlx_uint* ramMB) = 0;
|
|
1150
|
+
|
|
1151
|
+
/**
|
|
1152
|
+
*@page DOX_IADLXSystem_GetI2C GetI2C
|
|
1153
|
+
*@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXI2C "I2C" interface of a GPU. @ENG_END_DOX
|
|
1154
|
+
*
|
|
1155
|
+
*@syntax
|
|
1156
|
+
*@codeStart
|
|
1157
|
+
* @ref ADLX_RESULT GetI2C (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXI2C** ppI2C)
|
|
1158
|
+
*@codeEnd
|
|
1159
|
+
*
|
|
1160
|
+
*@params
|
|
1161
|
+
*@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX}
|
|
1162
|
+
*@paramrow{2.,[out] ,ppI2C,@ref DOX_IADLXI2C** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppI2C__ to __nullptr__. @ENG_END_DOX}
|
|
1163
|
+
*
|
|
1164
|
+
*@retvalues
|
|
1165
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1166
|
+
* If the interface is not successfully returned, an error code is returned. <br>
|
|
1167
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
|
|
1168
|
+
*
|
|
1169
|
+
*@detaileddesc
|
|
1170
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
1171
|
+
*
|
|
1172
|
+
* @addinfo
|
|
1173
|
+
* @ENG_START_DOX
|
|
1174
|
+
* In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
1175
|
+
*
|
|
1176
|
+
*@copydoc IADLXSystem_REQ_TABLE
|
|
1177
|
+
*
|
|
1178
|
+
*/
|
|
1179
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetI2C (IADLXGPU* pGPU, IADLXI2C** ppI2C) = 0;
|
|
1180
|
+
|
|
1181
|
+
}; //IADLXSystem
|
|
1182
|
+
} //namespace adlx
|
|
1183
|
+
#else
|
|
1184
|
+
|
|
1185
|
+
typedef struct IADLXDesktopServices IADLXDesktopServices;
|
|
1186
|
+
typedef struct IADLXDisplayServices IADLXDisplayServices;
|
|
1187
|
+
typedef struct IADLXLog IADLXLog;
|
|
1188
|
+
typedef struct IADLX3DSettingsServices IADLX3DSettingsServices;
|
|
1189
|
+
typedef struct IADLXSystem IADLXSystem;
|
|
1190
|
+
typedef struct IADLXGPUTuningServices IADLXGPUTuningServices;
|
|
1191
|
+
typedef struct IADLXPerformanceMonitoringServices IADLXPerformanceMonitoringServices;
|
|
1192
|
+
typedef struct IADLXI2C IADLXI2C;
|
|
1193
|
+
|
|
1194
|
+
typedef struct IADLXSystemVtbl
|
|
1195
|
+
{
|
|
1196
|
+
// IADLXSystem interface
|
|
1197
|
+
ADLX_RESULT (ADLX_STD_CALL *GetHybridGraphicsType)(IADLXSystem* pThis, ADLX_HG_TYPE* hgType);
|
|
1198
|
+
ADLX_RESULT (ADLX_STD_CALL *GetGPUs)(IADLXSystem* pThis, IADLXGPUList** ppGPUs);
|
|
1199
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystem* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
1200
|
+
ADLX_RESULT (ADLX_STD_CALL *GetDisplaysServices)(IADLXSystem* pThis, IADLXDisplayServices** ppDispServices);
|
|
1201
|
+
ADLX_RESULT (ADLX_STD_CALL *GetDesktopsServices)(IADLXSystem* pThis, IADLXDesktopServices** ppDeskServices);
|
|
1202
|
+
ADLX_RESULT (ADLX_STD_CALL *GetGPUsChangedHandling)(IADLXSystem* pThis, IADLXGPUsChangedHandling** ppGPUsChangedHandling);
|
|
1203
|
+
ADLX_RESULT (ADLX_STD_CALL *EnableLog)(IADLXSystem* pThis, ADLX_LOG_DESTINATION mode, ADLX_LOG_SEVERITY severity, IADLXLog* pLogger, const wchar_t* fileName);
|
|
1204
|
+
ADLX_RESULT (ADLX_STD_CALL *Get3DSettingsServices)(IADLXSystem* pThis, IADLX3DSettingsServices** pp3DSettingsServices);
|
|
1205
|
+
ADLX_RESULT (ADLX_STD_CALL *GetGPUTuningServices)(IADLXSystem* pThis, IADLXGPUTuningServices** ppGPUTuningServices);
|
|
1206
|
+
ADLX_RESULT (ADLX_STD_CALL *GetPerformanceMonitoringServices)(IADLXSystem* pThis, IADLXPerformanceMonitoringServices** ppPerformanceMonitoringServices);
|
|
1207
|
+
ADLX_RESULT (ADLX_STD_CALL *TotalSystemRAM)(IADLXSystem* pThis, adlx_uint* ramMB);
|
|
1208
|
+
ADLX_RESULT (ADLX_STD_CALL *GetI2C)(IADLXSystem* pThis, IADLXGPU* pGPU, IADLXI2C** ppI2C);
|
|
1209
|
+
} IADLXSystemVtbl;
|
|
1210
|
+
|
|
1211
|
+
struct IADLXSystem
|
|
1212
|
+
{
|
|
1213
|
+
const IADLXSystemVtbl *pVtbl;
|
|
1214
|
+
};
|
|
1215
|
+
#endif
|
|
1216
|
+
#pragma endregion IADLXSystem interface
|
|
1217
|
+
|
|
1218
|
+
//IADLMapping is a singleton interface, should not be deleted
|
|
1219
|
+
#pragma region IADLMapping interface
|
|
1220
|
+
#if defined (__cplusplus)
|
|
1221
|
+
namespace adlx
|
|
1222
|
+
{
|
|
1223
|
+
//Interface used to interface between ADL and ADLX. This is useful in applications that use both ADL and ADLX,
|
|
1224
|
+
//where ADLX was initialized with the instance of ADL that is initialized by the application.
|
|
1225
|
+
//In such case the application might need to use both ADL and ADLX on the same GPU or display.
|
|
1226
|
+
//This interface provides conversion both ways between ADL and ADLX GPU and display identity
|
|
1227
|
+
class ADLX_NO_VTABLE IADLXDisplay;
|
|
1228
|
+
class ADLX_NO_VTABLE IADLXDesktop;
|
|
1229
|
+
|
|
1230
|
+
class ADLX_NO_VTABLE IADLMapping
|
|
1231
|
+
{
|
|
1232
|
+
public:
|
|
1233
|
+
/**
|
|
1234
|
+
* @page DOX_IADLMapping_GetADLXGPUFromBdf GetADLXGPUFromBdf
|
|
1235
|
+
* @ENG_START_DOX
|
|
1236
|
+
* @brief Gets the reference counted @ref DOX_IADLXGPU interface corresponding to the GPU with the specified PCI bus number, device number, and function number.
|
|
1237
|
+
* @ENG_END_DOX
|
|
1238
|
+
* @syntax
|
|
1239
|
+
* @codeStart
|
|
1240
|
+
* @ref ADLX_RESULT GetADLXGPUFromBdf (adlx_int bus, adlx_int device, adlx_int function, @ref DOX_IADLXGPU** ppGPU)
|
|
1241
|
+
* @codeEnd
|
|
1242
|
+
*
|
|
1243
|
+
* @params
|
|
1244
|
+
* @paramrow{1.,[in] ,bus,adlx_int,@ENG_START_DOX The unique PCIE bus number of the requested GPU. @ENG_END_DOX}
|
|
1245
|
+
* @paramrow{2.,[in] ,device,adlx_int,@ENG_START_DOX The device number of the requested GPU. @ENG_END_DOX}
|
|
1246
|
+
* @paramrow{3.,[in] ,function,adlx_int,@ENG_START_DOX The function number of the requested GPU. @ENG_END_DOX}
|
|
1247
|
+
* @paramrow{4.,[out],ppGPU,@ref DOX_IADLXGPU**,@ENG_START_DOX The address of the pointer to the returned interface. If the GPU was not found\, the method sets the dereferenced address __*ppGPU__ to __nullptr__. @ENG_END_DOX}
|
|
1248
|
+
*
|
|
1249
|
+
* @retvalues
|
|
1250
|
+
* @ENG_START_DOX
|
|
1251
|
+
* If the @ref DOX_IADLXGPU is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1252
|
+
* If the @ref DOX_IADLXGPU is not returned, an error code is returned. <br>
|
|
1253
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1254
|
+
* @ENG_END_DOX
|
|
1255
|
+
*
|
|
1256
|
+
* @detaileddesc
|
|
1257
|
+
* @ENG_START_DOX
|
|
1258
|
+
* @details __GetADLXGPUFromBdf__ is used when an ADLX method must be called for a GPU obtained from ADL where an __AdapterInfo__ structure is available.<br>
|
|
1259
|
+
* The PCI bus number, device number, and function number parameters correspond to ADL __AdapterInfo.iBusNumber__, __AdapterInfo.iDeviceNumber__, and __AdapterInfo.iFunctionNumber__ for that GPU.<br>
|
|
1260
|
+
* The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
1261
|
+
* @ENG_END_DOX
|
|
1262
|
+
*
|
|
1263
|
+
* @addinfo
|
|
1264
|
+
* @ENG_START_DOX
|
|
1265
|
+
* In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
|
|
1266
|
+
* @ENG_END_DOX
|
|
1267
|
+
*
|
|
1268
|
+
* @copydoc IADLMapping_REQ_TABLE
|
|
1269
|
+
*
|
|
1270
|
+
*/
|
|
1271
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetADLXGPUFromBdf (adlx_int bus, adlx_int device, adlx_int function, IADLXGPU** ppGPU) = 0;
|
|
1272
|
+
/**
|
|
1273
|
+
* @page DOX_IADLMapping_GetADLXGPUFromAdlAdapterIndex GetADLXGPUFromAdlAdapterIndex
|
|
1274
|
+
* @ENG_START_DOX
|
|
1275
|
+
* @brief Gets the reference counted @ref DOX_IADLXGPU interface corresponding to the GPU with the specified ADL adapter index.
|
|
1276
|
+
* @ENG_END_DOX
|
|
1277
|
+
* @syntax
|
|
1278
|
+
* @codeStart
|
|
1279
|
+
* @ref ADLX_RESULT GetADLXGPUFromAdlAdapterIndex (adlx_int adlAdapterIndex, @ref DOX_IADLXGPU** ppGPU)
|
|
1280
|
+
* @codeEnd
|
|
1281
|
+
*
|
|
1282
|
+
* @params
|
|
1283
|
+
* @paramrow{1.,[in],adlAdapterIndex,adlx_int,@ENG_START_DOX The ADL adapter index for the requested GPU. @ENG_END_DOX}
|
|
1284
|
+
* @paramrow{2.,[out],ppGPU,@ref DOX_IADLXGPU**,@ENG_START_DOX The address of the pointer to the returned interface. If the GPU was not found\, the method sets the dereferenced address __*ppGPU__ to __nullptr__. @ENG_END_DOX}
|
|
1285
|
+
*
|
|
1286
|
+
* @retvalues
|
|
1287
|
+
* @ENG_START_DOX
|
|
1288
|
+
* If the @ref DOX_IADLXGPU is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1289
|
+
* If the @ref DOX_IADLXGPU is not returned, an error code is returned. <br>
|
|
1290
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes
|
|
1291
|
+
* @ENG_END_DOX
|
|
1292
|
+
*
|
|
1293
|
+
* @detaileddesc
|
|
1294
|
+
* @ENG_START_DOX
|
|
1295
|
+
* @details __GetADLXGPUFromAdlAdapterIndex__ is used when an ADLX method must be called for a GPU obtained from ADL for which an ADL adapter index is available. <br>
|
|
1296
|
+
* The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
1297
|
+
* @ENG_END_DOX
|
|
1298
|
+
*
|
|
1299
|
+
* @addinfo
|
|
1300
|
+
* @ENG_START_DOX
|
|
1301
|
+
* In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
|
|
1302
|
+
* @ENG_END_DOX
|
|
1303
|
+
*
|
|
1304
|
+
* @copydoc IADLMapping_REQ_TABLE
|
|
1305
|
+
*
|
|
1306
|
+
*/
|
|
1307
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetADLXGPUFromAdlAdapterIndex (adlx_int adlAdapterIndex, IADLXGPU** ppGPU) = 0;
|
|
1308
|
+
/**
|
|
1309
|
+
* @page DOX_IADLMapping_BdfFromADLXGPU BdfFromADLXGPU
|
|
1310
|
+
* @ENG_START_DOX
|
|
1311
|
+
* @brief Gets the PCI bus number, device number, and function number corresponding to the GPU with the specified @ref DOX_IADLXGPU interface.
|
|
1312
|
+
* @ENG_END_DOX
|
|
1313
|
+
* @syntax
|
|
1314
|
+
* @codeStart
|
|
1315
|
+
* @ref ADLX_RESULT BdfFromADLXGPU (@ref DOX_IADLXGPU* ppGPU, adlx_int* bus, adlx_int* device, adlx_int* function)
|
|
1316
|
+
* @codeEnd
|
|
1317
|
+
*
|
|
1318
|
+
* @params
|
|
1319
|
+
* @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX}
|
|
1320
|
+
* @paramrow{2.,[out] ,bus,adlx_int* ,@ENG_START_DOX The pointer to a variable where the unique PCIE bus number of the requested GPU is returned. @ENG_END_DOX}
|
|
1321
|
+
* @paramrow{3.,[out] ,device,adlx_int* ,@ENG_START_DOX The pointer to a variable where the device number of the requested GPU is returned. @ENG_END_DOX}
|
|
1322
|
+
* @paramrow{4.,[out] ,function,adlx_int* ,@ENG_START_DOX The pointer to a variable where function number of the requested GPU is returned. @ENG_END_DOX}
|
|
1323
|
+
*
|
|
1324
|
+
* @retvalues
|
|
1325
|
+
* @ENG_START_DOX
|
|
1326
|
+
* If bus, device, function are returned correctly, __ADLX_OK__ is returned.<br>
|
|
1327
|
+
* If bus, device, function are not returned correctly, an error code is returned. <br>
|
|
1328
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1329
|
+
* @ENG_END_DOX
|
|
1330
|
+
*
|
|
1331
|
+
* @detaileddesc
|
|
1332
|
+
* @ENG_START_DOX
|
|
1333
|
+
* @details __BdfFromADLXGPU__ is used when an ADL function must be called for a GPU obtained from ADLX, and the GPU's PCI bus, device, and function are required for that ADL function.
|
|
1334
|
+
* @ENG_END_DOX
|
|
1335
|
+
*
|
|
1336
|
+
* @copydoc IADLMapping_REQ_TABLE
|
|
1337
|
+
*
|
|
1338
|
+
*/
|
|
1339
|
+
virtual ADLX_RESULT ADLX_STD_CALL BdfFromADLXGPU (IADLXGPU* pGPU, adlx_int* bus, adlx_int* device, adlx_int* function) = 0;
|
|
1340
|
+
/**
|
|
1341
|
+
* @page DOX_IADLMapping_AdlAdapterIndexFromADLXGPU AdlAdapterIndexFromADLXGPU
|
|
1342
|
+
* @ENG_START_DOX
|
|
1343
|
+
* @brief Gets the ADL Adapter index corresponding to the GPU with the specified @ref DOX_IADLXGPU interface.
|
|
1344
|
+
* @ENG_END_DOX
|
|
1345
|
+
* @syntax
|
|
1346
|
+
* @codeStart
|
|
1347
|
+
* @ref ADLX_RESULT AdlAdapterIndexFromADLXGPU (@ref DOX_IADLXGPU* ppGPU, adlx_int* adlAdapterIndex)
|
|
1348
|
+
* @codeEnd
|
|
1349
|
+
*
|
|
1350
|
+
* @params
|
|
1351
|
+
* @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX}
|
|
1352
|
+
* @paramrow{2.,[out] ,adlAdapterIndex,adlx_int* ,@ENG_START_DOX The pointer to a variable where ADL adapter index of the requested GPU is returned. @ENG_END_DOX}
|
|
1353
|
+
*
|
|
1354
|
+
* @retvalues
|
|
1355
|
+
* @ENG_START_DOX
|
|
1356
|
+
* If the ADL adapter index is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1357
|
+
* If the ADL Adapter index is not returned, an error code is returned. <br>
|
|
1358
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1359
|
+
* @ENG_END_DOX
|
|
1360
|
+
*
|
|
1361
|
+
* @detaileddesc
|
|
1362
|
+
* @ENG_START_DOX
|
|
1363
|
+
* @details __AdlAdapterIndexFromADLXGPU__ is used when an ADL function must be called for a GPU obtained from ADLX, and the ADL adapter index is required for that ADL function.
|
|
1364
|
+
* @ENG_END_DOX
|
|
1365
|
+
*
|
|
1366
|
+
* @copydoc IADLMapping_REQ_TABLE
|
|
1367
|
+
*
|
|
1368
|
+
*/
|
|
1369
|
+
virtual ADLX_RESULT ADLX_STD_CALL AdlAdapterIndexFromADLXGPU (IADLXGPU* pGPU, adlx_int* adlAdapterIndex) = 0;
|
|
1370
|
+
/**
|
|
1371
|
+
* @page DOX_IADLMapping_GetADLXDisplayFromADLIds GetADLXDisplayFromADLIds
|
|
1372
|
+
* @ENG_START_DOX
|
|
1373
|
+
* @brief Gets the reference counted @ref DOX_IADLXDisplay interface corresponding to the display with the specified ADL adapter index, display index, PCI bus number, device number, and function number.
|
|
1374
|
+
* @ENG_END_DOX
|
|
1375
|
+
* @syntax
|
|
1376
|
+
* @codeStart
|
|
1377
|
+
* @ref ADLX_RESULT GetADLXDisplayFromADLIds (adlx_int adapterIndex, adlx_int displayIndex, adlx_int bus, adlx_int device, adlx_int function, @ref DOX_IADLXDisplay** ppDisplay)
|
|
1378
|
+
* @codeEnd
|
|
1379
|
+
*
|
|
1380
|
+
* @params
|
|
1381
|
+
* @paramrow{1.,[in] ,adapterIndex,adlx_int ,@ENG_START_DOX The ADL adapter index of the GPU where the requested display is connected. @ENG_END_DOX}
|
|
1382
|
+
* @paramrow{2.,[in] ,displayIndex,adlx_int ,@ENG_START_DOX The ADL logical display index of the requested display. @ENG_END_DOX}
|
|
1383
|
+
* @paramrow{3.,[in] ,bus,adlx_int ,@ENG_START_DOX The unique PCIE bus number of the GPU where the requested display is connected. @ENG_END_DOX}
|
|
1384
|
+
* @paramrow{4.,[in] ,device,adlx_int ,@ENG_START_DOX The device number of the GPU where the requested display is connected. @ENG_END_DOX}
|
|
1385
|
+
* @paramrow{5.,[in] ,function,adlx_int ,@ENG_START_DOX The device number of the GPU where the requested display is connected. @ENG_END_DOX}
|
|
1386
|
+
* @paramrow{6.,[out] ,ppDisplay,@ref DOX_IADLXDisplay**,@ENG_START_DOX The address of the pointer to the returned interface. If the display was not found\, the method sets the dereferenced address __*ppDisplay__ to __nullptr__. @ENG_END_DOX}
|
|
1387
|
+
*
|
|
1388
|
+
* @retvalues
|
|
1389
|
+
* @ENG_START_DOX
|
|
1390
|
+
* If the @ref DOX_IADLXDisplay interface is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1391
|
+
* If the @ref DOX_IADLXDisplay interface is not returned, an error code is returned. <br>
|
|
1392
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1393
|
+
* @ENG_END_DOX
|
|
1394
|
+
*
|
|
1395
|
+
* @detaileddesc
|
|
1396
|
+
* @ENG_START_DOX
|
|
1397
|
+
* @details __GetADLXDisplayFromADLIds__ is used when an ADLX method must be called for a display obtained from ADL. The ADL adapter index corresponds to the GPU to which the display is connected. <br>
|
|
1398
|
+
* The display index corresponds to the __ADLDisplayID.iDisplayLogicalIndex__ field for the display. <br>
|
|
1399
|
+
* The PCI bus number, device number, and function number parameters correspond to ADL __AdapterInfo.iBusNumber__, __AdapterInfo.iDeviceNumber__, and __AdapterInfo.iFunctionNumber__ for the GPU where that display is connected.<br>
|
|
1400
|
+
* The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
1401
|
+
* @ENG_END_DOX
|
|
1402
|
+
*
|
|
1403
|
+
* @addinfo
|
|
1404
|
+
* @ENG_START_DOX
|
|
1405
|
+
* In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
|
|
1406
|
+
* @ENG_END_DOX
|
|
1407
|
+
* @copydoc IADLMapping_REQ_TABLE
|
|
1408
|
+
*
|
|
1409
|
+
*/
|
|
1410
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetADLXDisplayFromADLIds (adlx_int adapterIndex, adlx_int displayIndex, adlx_int bus, adlx_int device, adlx_int function, IADLXDisplay** ppDisplay) = 0;
|
|
1411
|
+
/**
|
|
1412
|
+
* @page DOX_IADLMapping_ADLIdsFromADLXDisplay ADLIdsFromADLXDisplay
|
|
1413
|
+
* @ENG_START_DOX
|
|
1414
|
+
* @brief Gets the ADL Adapter index, display index, the PCI bus number, device number, and function number corresponding to the display with the specified @ref DOX_IADLXDisplay interface.
|
|
1415
|
+
* @ENG_END_DOX
|
|
1416
|
+
* @syntax
|
|
1417
|
+
* @codeStart
|
|
1418
|
+
* @ref ADLX_RESULT ADLIdsFromADLXDisplay (@ref DOX_IADLXDisplay* pDisplay, adlx_int* adapterIndex, adlx_int* displayIndex, adlx_int* bus, adlx_int* device, adlx_int* function)
|
|
1419
|
+
* @codeEnd
|
|
1420
|
+
*
|
|
1421
|
+
* @params
|
|
1422
|
+
* @paramrow{1.,[in] ,pDisplay, @ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
|
|
1423
|
+
* @paramrow{2.,[out] ,adapterIndex, adlx_int* ,@ENG_START_DOX The pointer to a variable where the ADL adapter index of the GPU that drives the requested display is returned. @ENG_END_DOX}
|
|
1424
|
+
* @paramrow{3.,[out] ,displayIndex, adlx_int* ,@ENG_START_DOX The pointer to a variable where the ADL logical display index of the GPU that drives the requested display is returned. @ENG_END_DOX}
|
|
1425
|
+
* @paramrow{4.,[out] ,bus,adlx_int*,@ENG_START_DOX The pointer to a variable where the unique PCIE bus number of the GPU that drives the requested display is returned. @ENG_END_DOX}
|
|
1426
|
+
* @paramrow{5.,[out] ,device,adlx_int*,@ENG_START_DOX The pointer to a variable where the device number of the GPU that drives the requested display is returned. @ENG_END_DOX}
|
|
1427
|
+
* @paramrow{6.,[out] ,function,adlx_int*,@ENG_START_DOX The pointer to a variable where the function number of the GPU that drives the requested display is returned. @ENG_END_DOX}
|
|
1428
|
+
*
|
|
1429
|
+
* @retvalues
|
|
1430
|
+
* @ENG_START_DOX
|
|
1431
|
+
* If the @ref DOX_IADLXDisplay interface is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1432
|
+
* If the @ref DOX_IADLXDisplay interface is not returned, an error code is returned. <br>
|
|
1433
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1434
|
+
* @ENG_END_DOX
|
|
1435
|
+
*
|
|
1436
|
+
* @detaileddesc
|
|
1437
|
+
* @ENG_START_DOX
|
|
1438
|
+
* @details __ADLIdsFromADLXDisplay__ is used when an ADL function must be called for a display obtained from ADLX, or for the GPU where the display is connected.
|
|
1439
|
+
* @ENG_END_DOX
|
|
1440
|
+
*
|
|
1441
|
+
* @copydoc IADLMapping_REQ_TABLE
|
|
1442
|
+
*
|
|
1443
|
+
*/
|
|
1444
|
+
virtual ADLX_RESULT ADLX_STD_CALL ADLIdsFromADLXDisplay (IADLXDisplay* pDisplay, adlx_int* adapterIndex, adlx_int* displayIndex, adlx_int* bus, adlx_int* device, adlx_int* function) = 0;
|
|
1445
|
+
/**
|
|
1446
|
+
* @page DOX_IADLMapping_GetADLXDesktopFromADLIds GetADLXDesktopFromADLIds
|
|
1447
|
+
* @ENG_START_DOX
|
|
1448
|
+
* @brief Gets the reference counted @ref DOX_IADLXDesktop interface corresponding to the desktop with the specified ADL adapter index, VidPnSource ID, the PCI bus number, device number, and function number.
|
|
1449
|
+
* @ENG_END_DOX
|
|
1450
|
+
* @syntax
|
|
1451
|
+
* @codeStart
|
|
1452
|
+
* @ref ADLX_RESULT GetADLXDesktopFromADLIds (adlx_int adapterIndex, adlx_int VidPnSource, adlx_int bus, adlx_int device, adlx_int function, @ref DOX_IADLXDesktop** ppDesktop)
|
|
1453
|
+
* @codeEnd
|
|
1454
|
+
*
|
|
1455
|
+
* @params
|
|
1456
|
+
* @paramrow{1.,[in] ,adapterIndex,adlx_int ,@ENG_START_DOX The ADL adapter index of the GPU where the requested desktop is instantiated. @ENG_END_DOX}
|
|
1457
|
+
* @paramrow{2.,[in] ,VidPnSourceID,adlx_int ,@ENG_START_DOX The zero-based identification number of the video present source in a path of a video present network (VidPN) topology of the requested desktop. @ENG_END_DOX}
|
|
1458
|
+
* @paramrow{3.,[in] ,bus,adlx_int ,@ENG_START_DOX The unique PCIE bus number of the GPU where the requested desktop is instantiated. @ENG_END_DOX}
|
|
1459
|
+
* @paramrow{4.,[in] ,device,adlx_int ,@ENG_START_DOX The device number of the GPU where the requested desktop is instantiated. @ENG_END_DOX}
|
|
1460
|
+
* @paramrow{5.,[in] ,function,adlx_int ,@ENG_START_DOX The function number of the GPU where the requested desktop is instantiated. @ENG_END_DOX}
|
|
1461
|
+
* @paramrow{6.,[out] ,ppDesktop,@ref DOX_IADLXDesktop**,@ENG_START_DOX The address of the pointer to the returned interface. If the desktop was not found\, the method sets the dereferenced address __*ppDesktop__ to __nullptr__. @ENG_END_DOX}
|
|
1462
|
+
*
|
|
1463
|
+
* @retvalues
|
|
1464
|
+
* @ENG_START_DOX
|
|
1465
|
+
* If the @ref DOX_IADLXDesktop interface is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1466
|
+
* If the arguments are incorrect __ADLX_INVALID_ARGS__ s returned. <br>
|
|
1467
|
+
* If @ref DOX_IADLXDesktop interface is not returned, an error code is returned. <br>
|
|
1468
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.
|
|
1469
|
+
* @ENG_END_DOX
|
|
1470
|
+
*
|
|
1471
|
+
* @detaileddesc
|
|
1472
|
+
* @ENG_START_DOX
|
|
1473
|
+
* @details __GetADLXDesktopFromADLIds__ is used when and ADLX method must be called from a desktop obtained from ADL. The adapter index corresponds to the GPU where the desktop is instantiated.<br>
|
|
1474
|
+
* The PCI bus number, device number, and function number parameters correspond to ADL __AdapterInfo.iBusNumber__, __AdapterInfo.iDeviceNumber__, and __AdapterInfo.iFunctionNumber__ of the GPU where that desktop is instantiated.<br>
|
|
1475
|
+
* The VidPnSource ID is obtained from __D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME.VidPnSourceId__ field for this desktop.<br>
|
|
1476
|
+
* The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
1477
|
+
* @ENG_END_DOX
|
|
1478
|
+
*
|
|
1479
|
+
* @addinfo
|
|
1480
|
+
* @ENG_START_DOX
|
|
1481
|
+
* In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
|
|
1482
|
+
* @ENG_END_DOX
|
|
1483
|
+
*
|
|
1484
|
+
* @copydoc IADLMapping_REQ_TABLE
|
|
1485
|
+
*
|
|
1486
|
+
*/
|
|
1487
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetADLXDesktopFromADLIds (adlx_int adapterIndex, adlx_int VidPnSourceId, adlx_int bus, adlx_int device, adlx_int function, IADLXDesktop** ppDesktop) = 0;
|
|
1488
|
+
/**
|
|
1489
|
+
* @page DOX_IADLMapping_ADLIdsFromADLXDesktop ADLIdsFromADLXDesktop
|
|
1490
|
+
* @ENG_START_DOX
|
|
1491
|
+
* @brief Gets the ADL Adapter index, Vid source ID, the PCIE bus number, device number, and function number corresponding to desktop with the specified @ref DOX_IADLXDesktop interface.
|
|
1492
|
+
* @ENG_END_DOX
|
|
1493
|
+
* @syntax
|
|
1494
|
+
* @codeStart
|
|
1495
|
+
* @ref ADLX_RESULT ADLIdsFromADLXDesktop (@ref DOX_IADLXDesktop* pDesktop, adlx_int* adapterIndex, adlx_int* VidPnSourceId, adlx_int* bus, adlx_int* device, adlx_int* function)
|
|
1496
|
+
* @codeEnd
|
|
1497
|
+
*
|
|
1498
|
+
* @params
|
|
1499
|
+
* @paramrow{1.,[in] ,pDesktop, @ref DOX_IADLXDesktop* ,@ENG_START_DOX The pointer to the desktop interface. @ENG_END_DOX}
|
|
1500
|
+
* @paramrow{2.,[out] ,adapterIndex, adlx_int* ,@ENG_START_DOX The pointer to a variable where the ADL adapter index of the GPU that drives the requested desktop is returned. @ENG_END_DOX}
|
|
1501
|
+
* @paramrow{3.,[out] ,VidPnSourceId, adlx_int* ,@ENG_START_DOX The pointer to a variable where the zero-based identification number of the video present network (VidPN) topology of the requested desktop is returned. @ENG_END_DOX}
|
|
1502
|
+
* @paramrow{4.,[out] ,bus,adlx_int*,@ENG_START_DOX The pointer to a variable where the unique PCIE bus number of the GPU that drives the requested desktop is returned. @ENG_END_DOX}
|
|
1503
|
+
* @paramrow{5.,[out] ,device,adlx_int*,@ENG_START_DOX The pointer to a variable where the device number of the GPU that drives the requested desktop is returned. @ENG_END_DOX}
|
|
1504
|
+
* @paramrow{6.,[out] ,function,adlx_int*,@ENG_START_DOX The pointer to a variable where the function number of the GPU that drives the requested desktop is returned. @ENG_END_DOX}
|
|
1505
|
+
*
|
|
1506
|
+
* @retvalues
|
|
1507
|
+
* @ENG_START_DOX
|
|
1508
|
+
* If the @ref DOX_IADLXDesktop interface is successfully returned, __ADLX_OK__ is returned. <br>
|
|
1509
|
+
* If the @ref DOX_IADLXDesktop interface is not returned, an error code is returned. <br>
|
|
1510
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes
|
|
1511
|
+
* @ENG_END_DOX
|
|
1512
|
+
*
|
|
1513
|
+
* @detaileddesc
|
|
1514
|
+
* @ENG_START_DOX
|
|
1515
|
+
* @details __ADLIdsFromADLXDesktop__ is used when an ADL function must be called for a desktop obtained from ADLX, or for the GPU that drives the desktop.
|
|
1516
|
+
* @ENG_END_DOX
|
|
1517
|
+
*
|
|
1518
|
+
* @copydoc IADLMapping_REQ_TABLE
|
|
1519
|
+
*
|
|
1520
|
+
*/
|
|
1521
|
+
virtual ADLX_RESULT ADLX_STD_CALL ADLIdsFromADLXDesktop (IADLXDesktop* pDesktop, adlx_int* adapterIndex, adlx_int* VidPnSourceId, adlx_int* bus, adlx_int* device, adlx_int* function) = 0;
|
|
1522
|
+
}; // IADLMapping
|
|
1523
|
+
} //namespace adlx
|
|
1524
|
+
#else
|
|
1525
|
+
typedef struct IADLXDisplay IADLXDisplay;
|
|
1526
|
+
typedef struct IADLXDesktop IADLXDesktop;
|
|
1527
|
+
typedef struct IADLMapping IADLMapping;
|
|
1528
|
+
|
|
1529
|
+
typedef struct IADLMappingVtbl
|
|
1530
|
+
{
|
|
1531
|
+
//Gets the IADLXGPU object corresponding to a GPU with given bus, device and function number
|
|
1532
|
+
ADLX_RESULT (ADLX_STD_CALL *GetADLXGPUFromBdf) (IADLMapping* pThis, adlx_int bus, adlx_int device, adlx_int function, IADLXGPU** ppGPU);
|
|
1533
|
+
//Gets the IADLXGPU object corresponding to a GPU with given ADL adapter index
|
|
1534
|
+
ADLX_RESULT (ADLX_STD_CALL *GetADLXGPUFromAdlAdapterIndex) (IADLMapping* pThis, adlx_int adlAdapterIndex, IADLXGPU** ppGPU);
|
|
1535
|
+
//Gets the bus, device and function number corresponding to the given IADLXGPU
|
|
1536
|
+
ADLX_RESULT (ADLX_STD_CALL *BdfFromADLXGPU) (IADLMapping* pThis, IADLXGPU* pGPU, adlx_int* bus, adlx_int* device, adlx_int* function);
|
|
1537
|
+
//Gets the ADL Adapter index corresponding to the given IADLXGPU
|
|
1538
|
+
ADLX_RESULT (ADLX_STD_CALL *AdlAdapterIndexFromADLXGPU) (IADLMapping* pThis, IADLXGPU* pGPU, adlx_int* adlAdapterIndex);
|
|
1539
|
+
//Gets the display object corresponding to the give ADL ids
|
|
1540
|
+
ADLX_RESULT (ADLX_STD_CALL *GetADLXDisplayFromADLIds) (IADLMapping* pThis, adlx_int adapterIndex, adlx_int displayIndex, adlx_int bus, adlx_int device, adlx_int function, IADLXDisplay** ppDisplay);
|
|
1541
|
+
//Gets ADL ids corresponding to the display object
|
|
1542
|
+
ADLX_RESULT (ADLX_STD_CALL *ADLIdsFromADLXDisplay) (IADLMapping* pThis, IADLXDisplay* pDisplay, adlx_int* adapterIndex, adlx_int* displayIndex, adlx_int* bus, adlx_int* device, adlx_int* function);
|
|
1543
|
+
//Gets the desktop object corresponding to the give ADL ids
|
|
1544
|
+
ADLX_RESULT (ADLX_STD_CALL *GetADLXDesktopFromADLIds) (IADLMapping* pThis, adlx_int adapterIndex, adlx_int VidPnSourceId, adlx_int bus, adlx_int device, adlx_int function, IADLXDesktop** ppDesktop);
|
|
1545
|
+
//Gets ADL ids corresponding to the desktop object
|
|
1546
|
+
ADLX_RESULT (ADLX_STD_CALL *ADLIdsFromADLXDesktop) (IADLMapping* pThis, IADLXDesktop* pDesktop, adlx_int* adapterIndex, adlx_int* VidPnSourceId, adlx_int* bus, adlx_int* device, adlx_int* function);
|
|
1547
|
+
|
|
1548
|
+
} IADLMappingVtbl;
|
|
1549
|
+
|
|
1550
|
+
struct IADLMapping
|
|
1551
|
+
{
|
|
1552
|
+
const IADLMappingVtbl *pVtbl;
|
|
1553
|
+
};
|
|
1554
|
+
#endif
|
|
1555
|
+
#pragma endregion IADLMapping interface
|
|
1556
|
+
|
|
1557
|
+
#endif //ADLX_ISYSTEM_H
|