Add support for Linux GPU info with Vulkan backend
1. Add support for Linux GPU info with vulkan backend: for
dev board without PCI support, try vulkan backend to get
GPU info.
2. Fix getVulkanInstance() issue when loading non-exist lib:
return NULL instance if open lib failed.
Bug: angleproject:5717
Change-Id: I03c11da25a8787496d098f6c9d6b4c53701383e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2734375
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/gpu_info_util/SystemInfo_linux.cpp b/src/gpu_info_util/SystemInfo_linux.cpp
index 8bb7f3f..d9b42bc 100644
--- a/src/gpu_info_util/SystemInfo_linux.cpp
+++ b/src/gpu_info_util/SystemInfo_linux.cpp
@@ -73,7 +73,8 @@
{
if (!GetPCIDevicesWithLibPCI(&(info->gpus)))
{
- return false;
+ // Try vulkan backend to get GPU info
+ return GetSystemInfoVulkan(info);
}
if (info->gpus.size() == 0)
diff --git a/src/gpu_info_util/SystemInfo_vulkan.cpp b/src/gpu_info_util/SystemInfo_vulkan.cpp
index aad211b..4a4a448 100644
--- a/src/gpu_info_util/SystemInfo_vulkan.cpp
+++ b/src/gpu_info_util/SystemInfo_vulkan.cpp
@@ -49,7 +49,16 @@
{
mLibVulkan = OpenSharedLibraryWithExtension(libraryName);
if (mLibVulkan)
- break;
+ {
+ if (mLibVulkan->getNative())
+ {
+ break;
+ }
+ else
+ {
+ SafeDelete(mLibVulkan);
+ }
+ }
}
if (!mLibVulkan)