Commit 9a839732 by Xiaoxuan Liu Committed by Commit Bot

Reland "Add support for Linux GPU info with Vulkan backend"

This is a reland of 5c09c1f8 Extra change: Add new ANGLE_HAS_VULKAN_SYSTEM_INFO compile variable for GetSystemInfoVulkan() in linux platform. Original change's description: > 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> Bug: angleproject:5717 Change-Id: Iaaab8f512b6ec1d524d7ebb3b4252fec3cfe7dc3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2739097 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent b3394db3
...@@ -428,6 +428,7 @@ angle_static_library("angle_gpu_info_util") { ...@@ -428,6 +428,7 @@ angle_static_library("angle_gpu_info_util") {
if (!is_chromeos && angle_has_build) { if (!is_chromeos && angle_has_build) {
sources += libangle_gpu_info_util_vulkan_sources sources += libangle_gpu_info_util_vulkan_sources
deps += [ "$angle_vulkan_headers_dir:vulkan_headers" ] deps += [ "$angle_vulkan_headers_dir:vulkan_headers" ]
defines += [ "ANGLE_HAS_VULKAN_SYSTEM_INFO" ]
} }
if (is_android) { if (is_android) {
......
...@@ -73,7 +73,12 @@ bool GetSystemInfo(SystemInfo *info) ...@@ -73,7 +73,12 @@ bool GetSystemInfo(SystemInfo *info)
{ {
if (!GetPCIDevicesWithLibPCI(&(info->gpus))) if (!GetPCIDevicesWithLibPCI(&(info->gpus)))
{ {
#if defined(ANGLE_HAS_VULKAN_SYSTEM_INFO)
// Try vulkan backend to get GPU info
return GetSystemInfoVulkan(info);
#else
return false; return false;
#endif // defined(ANGLE_HAS_VULKAN_SYSTEM_INFO)
} }
if (info->gpus.size() == 0) if (info->gpus.size() == 0)
......
...@@ -49,7 +49,16 @@ class VulkanLibrary final : NonCopyable ...@@ -49,7 +49,16 @@ class VulkanLibrary final : NonCopyable
{ {
mLibVulkan = OpenSharedLibraryWithExtension(libraryName); mLibVulkan = OpenSharedLibraryWithExtension(libraryName);
if (mLibVulkan) if (mLibVulkan)
break; {
if (mLibVulkan->getNative())
{
break;
}
else
{
SafeDelete(mLibVulkan);
}
}
} }
if (!mLibVulkan) if (!mLibVulkan)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment