Skip to content

Commit 7147f23

Browse files
committed
GPU (Windows): ignores invalid D3DKMT responses
1 parent 94164b8 commit 7147f23

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/detection/gpu/gpu_windows.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,12 @@ ffGPUDetectWsl2
350350
.PrivateDriverDataSize = sizeof(nodePerfData),
351351
});
352352
if (NT_SUCCESS(status)) {
353-
gpu->frequency = (uint32_t) (nodePerfData.MaxFrequency / 1000 / 1000);
354-
FF_DEBUG("Adapter #%u max graphics frequency: %u MHz", i, gpu->frequency);
353+
if (nodePerfData.MaxFrequency != 0) {
354+
gpu->frequency = (uint32_t) (nodePerfData.MaxFrequency / 1000 / 1000);
355+
FF_DEBUG("Adapter #%u max graphics frequency: %u MHz", i, gpu->frequency);
356+
} else {
357+
FF_DEBUG("Adapter #%u does not report max graphics frequency", i);
358+
}
355359
break;
356360
} else {
357361
FF_DEBUG("Failed to query node performance data for adapter #%u node #%u: %s",
@@ -373,8 +377,12 @@ ffGPUDetectWsl2
373377
.PrivateDriverDataSize = sizeof(adapterPerfData),
374378
});
375379
if (NT_SUCCESS(status)) {
376-
gpu->temperature = adapterPerfData.Temperature / 10.0;
377-
FF_DEBUG("Adapter #%u temperature: %.1f°C", i, gpu->temperature);
380+
if (adapterPerfData.Temperature != 0) {
381+
gpu->temperature = adapterPerfData.Temperature / 10.0;
382+
FF_DEBUG("Adapter #%u temperature: %.1f°C", i, gpu->temperature);
383+
} else {
384+
FF_DEBUG("Adapter #%u does not report temperature data", i);
385+
}
378386
} else {
379387
FF_DEBUG("Failed to query temperature for adapter #%u: %s", i, ffDebugNtStatus(status));
380388
}

0 commit comments

Comments
 (0)