diff --git a/src/detection/gpu/gpu_windows.c b/src/detection/gpu/gpu_windows.c index c114a16ce..75f0c2b8c 100644 --- a/src/detection/gpu/gpu_windows.c +++ b/src/detection/gpu/gpu_windows.c @@ -330,6 +330,10 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* if (gpu->type == FF_GPU_TYPE_UNKNOWN && adapterLuid > 0) { FF_DEBUG("Trying to determine GPU type using D3DKMT APIs"); + #if __aarch64__ + D3DKMT_OPENADAPTERFROMLUID openAdapterFromLuid = { .AdapterLuid = *(LUID*)&adapterLuid }; + if (NT_SUCCESS(D3DKMTOpenAdapterFromLuid(&openAdapterFromLuid))) + #else HMODULE hgdi32 = GetModuleHandleW(L"gdi32.dll"); if (hgdi32) { @@ -338,6 +342,7 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* { D3DKMT_OPENADAPTERFROMLUID openAdapterFromLuid = { .AdapterLuid = *(LUID*)&adapterLuid }; if (NT_SUCCESS(ffD3DKMTOpenAdapterFromLuid(&openAdapterFromLuid))) + #endif { FF_DEBUG("Successfully opened adapter from LUID"); @@ -433,6 +438,7 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* FF_DEBUG("Failed to get GPU temperature or temperature is 0"); } } + #if !__aarch64__ } else { @@ -443,6 +449,7 @@ const char* ffDetectGPUImpl(FF_MAYBE_UNUSED const FFGPUOptions* options, FFlist* { FF_DEBUG("Failed to get gdi32.dll module handle"); } + #endif } if (gpu->type == FF_GPU_TYPE_UNKNOWN)