@@ -99,8 +99,7 @@ typedef struct _D3DKMT_SEGMENTSIZEINFO {
9999
100100typedef struct _D3DKMT_ADAPTERTYPE {
101101 union {
102- struct
103- {
102+ struct {
104103 UINT RenderSupported : 1 ; // WDDM 1.2, Windows 8
105104 UINT DisplaySupported : 1 ;
106105 UINT SoftwareDevice : 1 ;
@@ -181,8 +180,11 @@ typedef enum _KMTQUERYADAPTERINFOTYPE {
181180 KMTQAITYPE_NODEMETADATA = 25 , // WDDM 2.0, Windows 10
182181 KMTQAITYPE_PHYSICALADAPTERDEVICEIDS = 31 ,
183182 KMTQAITYPE_QUERY_ADAPTER_UNIQUE_GUID = 60 , // WDDM 2.4, Windows 10 (1803)
184- // This reports the GUID string used by the adapter's registry key (DirectX and Video)
183+
184+ KMTQAITYPE_NODEPERFDATA = 61 ,
185+ KMTQAITYPE_ADAPTERPERFDATA = 62 ,
185186} KMTQUERYADAPTERINFOTYPE ;
187+ // `KMTQAITYPE_QUERY_ADAPTER_UNIQUE_GUID` reports the GUID string used by the adapter's registry key (DirectX and Video)
186188
187189typedef struct _D3DKMT_QUERYADAPTERINFO {
188190 D3DKMT_HANDLE hAdapter ;
@@ -199,20 +201,9 @@ typedef enum _D3DKMT_MEMORY_SEGMENT_GROUP {
199201} D3DKMT_MEMORY_SEGMENT_GROUP ;
200202
201203typedef enum _D3DKMT_QUERYSTATISTICS_TYPE {
202- D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER = 10 , // WDDM 2.4, Windows 10 April 2018 Update (version 1803)
203204 D3DKMT_QUERYSTATISTICS_SEGMENT_GROUP_USAGE = 17 , // WDDM 3.1, Windows 11 2022 Update (version 22H2)
204- D3DKMT_QUERYSTATISTICS_NODE2 = 18 ,
205205} D3DKMT_QUERYSTATISTICS_TYPE ;
206206
207- typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER {
208- ULONG PhysicalAdapterIndex ;
209- } D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER ;
210-
211- typedef struct _D3DKMT_QUERYSTATISTICS_QUERY_NODE2 {
212- UINT16 PhysicalAdapterIndex ;
213- UINT16 NodeOrdinal ;
214- } D3DKMT_QUERYSTATISTICS_QUERY_NODE2 ;
215-
216207typedef struct _D3DKMT_ADAPTER_PERFDATA {
217208 UINT32 PhysicalAdapterIndex ; // in: The physical adapter index, in an LDA chain
218209 D3DKMT_ALIGN64 ULONGLONG MemoryFrequency ; // out: Clock frequency of the memory in hertz
@@ -226,33 +217,6 @@ typedef struct _D3DKMT_ADAPTER_PERFDATA {
226217 UCHAR PowerStateOverride ; // out: Overrides dxgkrnls power view of linked adapters.
227218} D3DKMT_ADAPTER_PERFDATA ;
228219
229- typedef struct _D3DKMT_ADAPTER_PERFDATACAPS {
230- UINT32 PhysicalAdapterIndex ; // in: The physical adapter index, in an LDA chain
231- D3DKMT_ALIGN64 ULONGLONG MaxMemoryBandwidth ; // out: Max memory bandwidth in bytes for 1 second
232- D3DKMT_ALIGN64 ULONGLONG MaxPCIEBandwidth ; // out: Max pcie bandwidth in bytes for 1 second
233- ULONG MaxFanRPM ; // out: Max fan rpm
234- ULONG TemperatureMax ; // out: Max temperature before damage levels
235- ULONG TemperatureWarning ; // out: The temperature level where throttling begins.
236- } D3DKMT_ADAPTER_PERFDATACAPS ;
237-
238- #define DXGK_MAX_GPUVERSION_NAME_LENGTH 32
239-
240- typedef struct _D3DKMT_GPUVERSION {
241- UINT32 PhysicalAdapterIndex ; // in: The physical adapter index, in an LDA chain
242- WCHAR BiosVersion [DXGK_MAX_GPUVERSION_NAME_LENGTH ]; // out: The gpu bios version
243- WCHAR GpuArchitecture [DXGK_MAX_GPUVERSION_NAME_LENGTH ]; // out: The gpu architectures name.
244- } D3DKMT_GPUVERSION ;
245-
246- typedef struct _D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION {
247- D3DKMT_ADAPTER_PERFDATA AdapterPerfData ;
248- D3DKMT_ADAPTER_PERFDATACAPS AdapterPerfDataCaps ;
249- D3DKMT_GPUVERSION GpuVersion ;
250- } D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION ;
251-
252- typedef struct _D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION {
253- D3DKMT_ALIGN64 UINT64 Reserved [34 ];
254- } D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION ;
255-
256220typedef struct _D3DKMT_NODE_PERFDATA {
257221 UINT32 NodeOrdinal ; // in: Node ordinal of the requested engine.
258222 UINT32 PhysicalAdapterIndex ; // in: The physical adapter index, in an LDA chain
@@ -266,13 +230,6 @@ typedef struct _D3DKMT_NODE_PERFDATA {
266230 D3DKMT_ALIGN64 ULONGLONG MaxTransitionLatency ; // out: Max transition latency to change the frequency in 100 nanoseconds
267231} D3DKMT_NODE_PERFDATA ;
268232
269- typedef struct _D3DKMT_QUERYSTATISTICS_NODE_INFORMATION {
270- D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION GlobalInformation ; // Global statistics
271- D3DKMT_QUERYSTATISTICS_PROCESS_NODE_INFORMATION SystemInformation ; // Statistics for system thread
272- D3DKMT_NODE_PERFDATA NodePerfData ;
273- UINT32 Reserved [3 ];
274- } D3DKMT_QUERYSTATISTICS_NODE_INFORMATION ;
275-
276233typedef struct _D3DKMT_QUERYSTATISTICS_MEMORY_USAGE {
277234 D3DKMT_ALIGN64 UINT64 AllocatedBytes ;
278235 D3DKMT_ALIGN64 UINT64 FreeBytes ;
@@ -282,8 +239,6 @@ typedef struct _D3DKMT_QUERYSTATISTICS_MEMORY_USAGE {
282239} D3DKMT_QUERYSTATISTICS_MEMORY_USAGE ;
283240
284241typedef union _D3DKMT_QUERYSTATISTICS_RESULT {
285- D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER_INFORMATION PhysAdapterInformation ;
286- D3DKMT_QUERYSTATISTICS_NODE_INFORMATION NodeInformation ;
287242 D3DKMT_QUERYSTATISTICS_MEMORY_USAGE SegmentGroupUsageInformation ;
288243 uint8_t Padding [776 ];
289244} D3DKMT_QUERYSTATISTICS_RESULT ;
@@ -300,9 +255,7 @@ typedef struct _D3DKMT_QUERYSTATISTICS {
300255 D3DKMT_QUERYSTATISTICS_RESULT QueryResult ; // out: requested data
301256
302257 union {
303- D3DKMT_QUERYSTATISTICS_QUERY_PHYSICAL_ADAPTER QueryPhysAdapter ; // in: id of physical adapter to get statistics for
304258 D3DKMT_QUERYSTATISTICS_QUERY_SEGMENT_GROUP_USAGE QuerySegmentGroupUsage ;
305- D3DKMT_QUERYSTATISTICS_QUERY_NODE2 QueryNode2 ; // in: id of node to get statistics for
306259 };
307260} D3DKMT_QUERYSTATISTICS ;
308261static_assert (sizeof (D3DKMT_QUERYSTATISTICS ) ==
@@ -328,10 +281,10 @@ typedef enum {
328281 DXGK_ENGINE_TYPE_VIDEO_CODEC ,
329282 DXGK_ENGINE_TYPE_MAX
330283} DXGK_ENGINE_TYPE ;
284+
331285typedef struct _DXGK_NODEMETADATA_FLAGS {
332286 union {
333- struct
334- {
287+ struct {
335288 UINT ContextSchedulingSupported : 1 ; // WDDM 2.2
336289 UINT RingBufferFenceRelease : 1 ; // WDDM 2.5
337290 UINT SupportTrackedWorkload : 1 ;
0 commit comments