loader: Don't drop unknown drivers
A previous change started matching drivers from the HKLM registry
against a list of known drivers. This change modifiers the behavior so
that unrecognized drivers are used, instead of being dropped.
Change-Id: Ifca2a2450acf560e5674e0ae44e815b2f8ada9e0
diff --git a/loader/loader.c b/loader/loader.c
index 5ce487e..73f1bb0 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -932,41 +932,40 @@
}
if (i == sizeof(known_drivers) / sizeof(known_drivers[0])) {
loader_log(inst, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
- "Dropping driver %s as it was not recognized as a known driver", name);
- continue;
- }
+ "Driver %s is not recognized as a known driver. It will be assumed to be active", name);
+ } else {
+ bool found_gpu = false;
+ for (int j = 0;; ++j) {
+ IDXGIAdapter1 *adapter;
+ HRESULT hres = dxgi_factory->lpVtbl->EnumAdapters1(dxgi_factory, j, &adapter);
+ if (hres == DXGI_ERROR_NOT_FOUND) {
+ break;
+ } else if (hres != S_OK) {
+ loader_log(inst, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
+ "Failed to enumerate DXGI adapters at index %d. As a result, drivers may be skipped", j);
+ continue;
+ }
- bool found_gpu = false;
- for (int j = 0;; ++j) {
- IDXGIAdapter1 *adapter;
- HRESULT hres = dxgi_factory->lpVtbl->EnumAdapters1(dxgi_factory, j, &adapter);
- if (hres == DXGI_ERROR_NOT_FOUND) {
- break;
- } else if (hres != S_OK) {
- loader_log(inst, VK_DEBUG_REPORT_WARNING_BIT_EXT, 0,
- "Failed to enumerate DXGI adapters at index %d. As a result, drivers may be skipped", j);
+ DXGI_ADAPTER_DESC1 description;
+ hres = adapter->lpVtbl->GetDesc1(adapter, &description);
+ if (hres != S_OK) {
+ loader_log(
+ inst, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
+ "Failed to get DXGI adapter information at index %d. As a result, drivers may be skipped", j);
+ continue;
+ }
+
+ if (description.VendorId == known_drivers[i].vendor_id) {
+ found_gpu = true;
+ break;
+ }
+ }
+
+ if (!found_gpu) {
+ loader_log(inst, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
+ "Dropping driver %s as no corresponduing DXGI adapter was found", name);
continue;
}
-
- DXGI_ADAPTER_DESC1 description;
- hres = adapter->lpVtbl->GetDesc1(adapter, &description);
- if (hres != S_OK) {
- loader_log(
- inst, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
- "Failed to get DXGI adapter information at index %d. As a result, drivers may be skipped", j);
- continue;
- }
-
- if (description.VendorId == known_drivers[i].vendor_id) {
- found_gpu = true;
- break;
- }
- }
-
- if (!found_gpu) {
- loader_log(inst, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, 0,
- "Dropping driver %s as no corresponduing DXGI adapter was found", name);
- continue;
}
}