@@ -352,11 +352,11 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist*
352352 D3DKMT_ADAPTERTYPE adapterType = {};
353353 D3DKMT_QUERYADAPTERINFO queryAdapterInfo = {
354354 .hAdapter = openAdapterFromLuid .hAdapter ,
355- .Type = KMTQAITYPE_ADAPTERTYPE ,
355+ .Type = KMTQAITYPE_ADAPTERTYPE , // Windows 8 and later
356356 .pPrivateDriverData = & adapterType ,
357357 .PrivateDriverDataSize = sizeof (adapterType ),
358358 };
359- if (NT_SUCCESS (D3DKMTQueryAdapterInfo (& queryAdapterInfo ))) // Vista and later
359+ if (NT_SUCCESS (D3DKMTQueryAdapterInfo (& queryAdapterInfo )))
360360 {
361361 FF_DEBUG ("Queried adapter type - HybridDiscrete: %d, HybridIntegrated: %d" , adapterType .HybridDiscrete , adapterType .HybridIntegrated );
362362 if (adapterType .HybridDiscrete )
@@ -369,7 +369,7 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist*
369369 FF_DEBUG ("Failed to query adapter type" );
370370 }
371371
372- if (gpu -> frequency == FF_GPU_FREQUENCY_UNSET )
372+ if (gpu -> frequency == FF_GPU_FREQUENCY_UNSET && ffIsWindows11OrGreater () )
373373 {
374374 FF_DEBUG ("Trying to get GPU frequency information" );
375375 for (ULONG nodeIdx = 0 ; ; nodeIdx ++ )
@@ -379,14 +379,14 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist*
379379 };
380380 queryAdapterInfo = (D3DKMT_QUERYADAPTERINFO ) {
381381 .hAdapter = openAdapterFromLuid .hAdapter ,
382- .Type = KMTQAITYPE_NODEMETADATA ,
382+ .Type = KMTQAITYPE_NODEMETADATA , // Windows 10 and later
383383 .pPrivateDriverData = & nodeMetadata ,
384384 .PrivateDriverDataSize = sizeof (nodeMetadata ),
385385 };
386386 if (!NT_SUCCESS (D3DKMTQueryAdapterInfo (& queryAdapterInfo )))
387387 {
388388 FF_DEBUG ("No more nodes to query (index %lu)" , nodeIdx );
389- break ; // Windows 10 and later
389+ break ;
390390 }
391391 if (nodeMetadata .NodeData .EngineType != DXGK_ENGINE_TYPE_3D )
392392 {
@@ -395,11 +395,11 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist*
395395 }
396396
397397 D3DKMT_QUERYSTATISTICS queryStatistics = {
398- .Type = D3DKMT_QUERYSTATISTICS_NODE2 ,
398+ .Type = D3DKMT_QUERYSTATISTICS_NODE2 , // Windows 11 (22H2) and later
399399 .AdapterLuid = * (LUID * )& adapterLuid ,
400400 .QueryNode2 = { .PhysicalAdapterIndex = 0 , .NodeOrdinal = (UINT16 ) nodeIdx },
401401 };
402- if (NT_SUCCESS (D3DKMTQueryStatistics (& queryStatistics ))) // Windows 11 (22H2) and later
402+ if (NT_SUCCESS (D3DKMTQueryStatistics (& queryStatistics )))
403403 {
404404 gpu -> frequency = (uint32_t ) (queryStatistics .QueryResult .NodeInformation .NodePerfData .MaxFrequency / 1000 / 1000 );
405405 FF_DEBUG ("Found GPU frequency: %u MHz" , gpu -> frequency );
@@ -422,11 +422,11 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist*
422422 FF_DEBUG ("Failed to open adapter from LUID" );
423423 }
424424
425- if (options -> temp && gpu -> temperature == FF_GPU_TEMP_UNSET )
425+ if (options -> temp && gpu -> temperature == FF_GPU_TEMP_UNSET && ffIsWindows10OrGreater () )
426426 {
427427 FF_DEBUG ("Trying to get GPU temperature" );
428428 D3DKMT_QUERYSTATISTICS queryStatistics = {
429- .Type = D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER ,
429+ .Type = D3DKMT_QUERYSTATISTICS_PHYSICAL_ADAPTER , // Windows 10 (1803) and later
430430 .AdapterLuid = * (LUID * )& adapterLuid ,
431431 .QueryPhysAdapter = { .PhysicalAdapterIndex = 0 },
432432 };
0 commit comments