src/gpu_info_util/SystemInfo_vulkan.cpp


Log

Author Commit Date CI Message
Amirali Abdolrashidi ca0457f6 2025-04-15T13:10:58 Vulkan: Fix parsed QCOM major version When running tests on QCOM, the major driver version in the renderer string is shown as 512 (e.g, 512.777.0). However, the parsed driver version from the device shows it as 0 (i.e., 0.777.0). Since the features limited on QCOM use 512 as the driver version cap, they would be initialized incorrectly, as they would always be seen as smaller than the cap. This change will remedy this. * Updated ParseQualcommVulkanDriverVersion() to set the major version for the new QCOM drivers as 512 after parsing. Bug: chromium:371512561 Change-Id: I9cd5cf6d3dec50eb900429e4fdda6c563f670f7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6460066 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu d5ab1331 2025-04-09T20:26:47 Reland^2 "Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD" This is a reland of 16c852917d0e384fdba780ee6239ab40c3652a7a vkGetPhysicalDeviceProperties2 can be null on devices where VkPhysicalDeviceProperties.apiVersion < VK_API_VERSION_1_1. Even the vkEnumerateInstanceVersion returns VK_API_VERSION_1_1, it doesn't mean the actual device supports VK_API_VERSION_1_1. It only means the loader can handle vulkan instance creaion requests up to VK_API_VERSION_1_1, so we shouldn't assume the device also supports VK_API_VERSION_1_1 and fail vulkan instance creation if vkGetPhysicalDeviceProperties2 is null. Instead, we should proceed with instance creation, and only check vkGetPhysicalDeviceProperties2 is not null when the actual device supports VK_API_VERSION_1_1. Original change's description > On Fuchsia, it is possible that there is no vulkan driver and > vkCreateInstance() triggered VVLDebugUtilsMessenger. > "vkCreateInstance: Found no drivers" is a > VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT message. We should only > care about VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT message > type. Remove VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT and > VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT from the > VkDebugUtilsMessengerCreateInfoEXT. > Add code to print the VVL message in the log so we know what's wrong. > Add a condition to only assert when the VVL message severity is > VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT. > Bug: angleproject:407116232 > Change-Id: I1ffc4041368782641fc605366ff7cf03e43eb53f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6435033 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:407116232 Change-Id: I138933a235c4e638fac73559903cf77ecef9159a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6444660 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 02fb04a8 2025-04-09T18:36:35 Revert "Reland "Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD"" This reverts commit 16c852917d0e384fdba780ee6239ab40c3652a7a. Reason for revert: causes Chromium Android FYI Release (Nexus 5X) tests failures: https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Nexus%205X)/77632/overview Original change's description: > Reland "Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD" > > This is a reland of 3f028fc158fac948723e8d535463eb80d0a85fed. > > On Fuchsia, it is possible that there is no vulkan driver and > vkCreateInstance() triggered VVLDebugUtilsMessenger. > "vkCreateInstance: Found no drivers" is a > VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT message. We should only > care about VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT message > type. Remove VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT and > VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT from the > VkDebugUtilsMessengerCreateInfoEXT. > > Add code to print the VVL message in the log so we know what's wrong. > > Add a condition to only assert when the VVL message severity is > VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT. > > Original change's description: > > Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD > > > > This helps catching bugs for vulkan calls issued > > during GetSystemInfoVulkanWithICD(). > > > > Also changed getProc() function to get vulkan function pointers by > > calling vkGetInstanceProcAddr(), instead of calling dlsym(). Only use > > dlsym() to get vkGetInstanceProcAddr() function pointer. > > > Bug: angleproject:407116232 > > Change-Id: I14dce3453c76a084db63fdb45a3db07b7b4d5294 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6374305 > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Charlie Lao <cclao@google.com> > > Commit-Queue: Yuxin Hu <yuxinhu@google.com> > > Bug: angleproject:407116232 > Change-Id: I1ffc4041368782641fc605366ff7cf03e43eb53f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6435033 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:407116232 Bug: chromium:409350833 Change-Id: I29aa9e450180857a993459da8f210df7aad9afaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6444658 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuxin Hu 01c5100a 2025-04-09T18:34:22 Revert "Change the VVL missing log from WARN() to INFO()" This reverts commit f680e1074ba5713d79affe6f69640e531a6f13a3. Reason for revert: this is part of the cl chain that causes chromium CI to fail: https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Nexus%205X)/77632/overview Original change's description: > Change the VVL missing log from WARN() to INFO() > > On certain chromium Android CI, VK_LAYER_KHRONOS_validation layer > is missing, and WARN() message causes tests to fail: > https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Nexus%205X)/77567/infra > > Bug: chromium:409350833 > Change-Id: I16f85d73ad41f81a40cc25b1a80ee14fd772a78e > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6442304 > Auto-Submit: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bug: chromium:409350833 No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: Ie3d38a9532d49cf9e9c006cf933d42e68356a4b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6444751 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuxin Hu 33105b96 2025-04-09T18:31:59 Revert "Limit use of vkEnumerateInstanceVersion to VK_VERSION_1_1" This reverts commit a6b915706ad9cd65192e0ca78f14bd6593f9789d. Reason for revert: still causing chromium Android CI failures: https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Nexus%205X)/77632/overview Original change's description: > Limit use of vkEnumerateInstanceVersion to VK_VERSION_1_1 > > On devices where vulkan 1.1 is not supported, calling > vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceVersion") > results in error: > > invalid vkGetInstanceProcAddr(VK_NULL_HANDLE, > "vkEnumerateInstanceVersion") call. > > Limit > vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceVersion") > to VK_VERSION_1_1. > > Bug: chromium:409350833 > Change-Id: I313585b133967d32fba597013dcfa846609b0f74 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6443937 > Commit-Queue: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Auto-Submit: Yuxin Hu <yuxinhu@google.com> Bug: chromium:409350833 No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: I28f4f70638c1a92fbc139f8436e995e27aa9a7c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6444657 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi f7d58b0c 2025-04-09T15:38:52 Vulkan: Report deviceName in GPU properties Bug: chromium:371512561 Change-Id: Ifd52acf2a5e550b9d2f2222e5e986e6df66611c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6440095 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu a6b91570 2025-04-09T10:36:23 Limit use of vkEnumerateInstanceVersion to VK_VERSION_1_1 On devices where vulkan 1.1 is not supported, calling vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceVersion") results in error: invalid vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceVersion") call. Limit vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceVersion") to VK_VERSION_1_1. Bug: chromium:409350833 Change-Id: I313585b133967d32fba597013dcfa846609b0f74 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6443937 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu f680e107 2025-04-08T16:22:29 Change the VVL missing log from WARN() to INFO() On certain chromium Android CI, VK_LAYER_KHRONOS_validation layer is missing, and WARN() message causes tests to fail: https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Nexus%205X)/77567/infra Bug: chromium:409350833 Change-Id: I16f85d73ad41f81a40cc25b1a80ee14fd772a78e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6442304 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 16c85291 2025-03-19T18:15:43 Reland "Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD" This is a reland of 3f028fc158fac948723e8d535463eb80d0a85fed. On Fuchsia, it is possible that there is no vulkan driver and vkCreateInstance() triggered VVLDebugUtilsMessenger. "vkCreateInstance: Found no drivers" is a VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT message. We should only care about VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT message type. Remove VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT and VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT from the VkDebugUtilsMessengerCreateInfoEXT. Add code to print the VVL message in the log so we know what's wrong. Add a condition to only assert when the VVL message severity is VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT. Original change's description: > Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD > > This helps catching bugs for vulkan calls issued > during GetSystemInfoVulkanWithICD(). > > Also changed getProc() function to get vulkan function pointers by > calling vkGetInstanceProcAddr(), instead of calling dlsym(). Only use > dlsym() to get vkGetInstanceProcAddr() function pointer. > Bug: angleproject:407116232 > Change-Id: I14dce3453c76a084db63fdb45a3db07b7b4d5294 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6374305 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bug: angleproject:407116232 Change-Id: I1ffc4041368782641fc605366ff7cf03e43eb53f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6435033 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 7d4c77b9 2025-04-04T11:15:51 Revert "Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD" This reverts commit 3f028fc158fac948723e8d535463eb80d0a85fed. Reason for revert: triggering asserts in fuchsia tests: https://crrev.com/c/6431747 Original change's description: > Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD > > This helps catching bugs for vulkan calls issued > during GetSystemInfoVulkanWithICD(). > > Also changed getProc() function to get vulkan function pointers by > calling vkGetInstanceProcAddr(), instead of calling dlsym(). Only use > dlsym() to get vkGetInstanceProcAddr() function pointer. > > Bug: angleproject:407116232 > Change-Id: I14dce3453c76a084db63fdb45a3db07b7b4d5294 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6374305 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bug: angleproject:407116232 No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: Ic81ebf77f3519cb6a4365dc57ea7753867ae086c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6433022 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 3f028fc1 2025-03-19T18:15:43 Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD This helps catching bugs for vulkan calls issued during GetSystemInfoVulkanWithICD(). Also changed getProc() function to get vulkan function pointers by calling vkGetInstanceProcAddr(), instead of calling dlsym(). Only use dlsym() to get vkGetInstanceProcAddr() function pointer. Bug: angleproject:407116232 Change-Id: I14dce3453c76a084db63fdb45a3db07b7b4d5294 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6374305 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 47c64ce2 2025-01-24T16:15:26 Vulkan: Fix driver version parsing Bug: chromium:371512561 Change-Id: I469c4ae71613fdfdfd7e58602b5a7262342acba7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6199184 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Steven Noonan 801993bc 2025-01-18T21:48:41 handle Qualcomm's mixed vendor IDs This is a weird situation. Up until Qualcomm had a native Vulkan driver for Windows (with the Snapdragon X series chips), the only vendor ID observable on Windows was 0x4D4F4351. This was reported through DXGI, device manager, etc. But with their native Vulkan driver, they now report 0x5143 as well: VkPhysicalDeviceProperties: --------------------------- apiVersion = 1.3.295 (4206887) driverVersion = 0.807.0 (2150789120) vendorID = 0x5143 deviceID = 0x36334330 deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU deviceName = Qualcomm(R) Adreno(TM) X1-85 GPU pipelineCacheUUID = 0eba4509-4351-0000-0000-010c05430000 And yet, DXGI still reports 0x4D4F4351. Cool, huh? Let's teach IsQualcomm to understand both vendor IDs to ensure the device is correctly detected as a tile-based renderer in the Vulkan backend. Bug: angleproject:390866623 Change-Id: I9170c30262ace269498f066e922a279c7e981de6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6183621 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Steven Noonan 3226a3df 2024-12-13T14:06:55 Reland: vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid Implement the ability to select a specific device and driver combination through a few new selection criteria: VkPhysicalDeviceIDProperties::deviceUUID VkPhysicalDeviceIDProperties::driverUUID VkPhysicalDeviceDriverProperties::driverID Earlier version had problems due to a test build issue. Per syoussefi@, going to rework the test into a separate CL so that we get the core change merged. Bug: angleproject:351866412 Change-Id: I0a3f4f1a2154a06bf6286a037c9ad4834ef4dda2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6165286 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Yuly Novikov 3b092269 2025-01-09T08:54:00 Revert "vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid" This reverts commit 96abb2c3d9e296ae12e50e0026bf5d3a7b925e7e. Reason for revert: breaks rolling into Chromium https://chromium-review.googlesource.com/c/chromium/src/+/6158098 Original change's description: > vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid > > Implement the ability to select a specific device and driver combination > through a few new selection criteria: > > VkPhysicalDeviceIDProperties::deviceUUID > VkPhysicalDeviceIDProperties::driverUUID > VkPhysicalDeviceDriverProperties::driverID > > Bug: angleproject:351866412 > Change-Id: Ia6716aaed658d2563612d8b5d81287df97b57462 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686557 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Auto-Submit: Steven Noonan <steven@uplinklabs.net> > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:351866412 Change-Id: Ic7cf9dcf6a950556cc44f5920498db429c866340 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164164 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Steven Noonan 96abb2c3 2024-12-13T14:06:55 vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid Implement the ability to select a specific device and driver combination through a few new selection criteria: VkPhysicalDeviceIDProperties::deviceUUID VkPhysicalDeviceIDProperties::driverUUID VkPhysicalDeviceDriverProperties::driverID Bug: angleproject:351866412 Change-Id: Ia6716aaed658d2563612d8b5d81287df97b57462 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686557 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d193d51b 2024-06-17T22:46:08 Replace issue ids post migration to new issue tracker This change replaces anglebug.com/NNNN links. Bug: None Change-Id: I8ac3aec8d2a8a844b3d7b99fc0a6b2be8da31761 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5637912 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Steven Noonan 113f847b 2023-06-26T12:07:52 centralize basic OS/platform detection functions We had multiple different places that defined these, and with varying naming schemes. Centralize them to be defined in platform_helpers.h. Also renaming the IsApple(uint32_t) functions to IsAppleGPU(uint32_t) to avoid ambiguous meaning: "IsApple" should mean "is Apple-vended OS" while "IsAppleGPU" should mean "is Apple GPU vendor ID". Bug: angleproject:8229 Change-Id: If4e3fc5ac1b5b8ad416663950a1b2ee912ccad99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4647291 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Steven Noonan <steven@uplinklabs.net> Auto-Submit: Steven Noonan <steven@uplinklabs.net> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Steven Noonan 42c3a9fe 2023-06-23T03:53:09 Vulkan: support creating context with MoltenVK on macOS The Vulkan loader somewhat recently introduced a requirement that clients must opt-in to using portability implementations of Vulkan (such as MoltenVK). Since there is no native Vulkan driver for macOS (and therefore no alternative), unconditionally enable the portability enumeration extension there. Bug: angleproject:8229 Change-Id: I24f0f24e25abd277855ed9ac4de370cfb47d3266 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4639495 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Steven Noonan <steven@uplinklabs.net> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Cody Northrop 1f9759aa 2023-02-03T11:14:08 Tests: Add Samsung support in our test harness Test: Progress towards running end2end tests on Android Bug: b/267953710 Change-Id: I91e4e58833c3a55705b96871be6b124964605b83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227946 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Peng Huang 9f99d594 2022-09-22T10:04:42 Add driverApiVersion in GPUDeviceInfo Bug: chromium:1340081 Change-Id: I9a1b190d3299b4f5e4603ac3e45869f385df0c48 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3913426 Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 76a3f050 2022-09-21T09:03:47 Fix crash in vkGetPhysicalDeviceProperties2() In rare case, the driver may not support vulkan 1.1 and then calling vkGetPhysicalDeviceProperties2() will cause crash. Bug: chromium:1340081 Change-Id: Id612785ed97abab451dc28bf1c45014b38d7bf0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3909788 Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 1c472132 2022-09-20T17:27:24 Handle Mesa llvmpipe in GetSystemInfoVulkanWithICD llvmpipe vulkan driver may exist on Linux system, it should be handled correctly, otherwise GetSystemInfoVulkanWithICD() will return false. Bug: chromium:1340081 Change-Id: I77b1e347ee9b40651f43bf3b2d2ee32ef534dedc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3907883 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Peng Huang 790dc479 2022-09-20T10:14:32 Collect vulkan driverID with GetSystemInfoVulkan() For AMD, the driver can be MESA, AMDVLK or proprietary driver. Chrome needs those info to decide if use vulkan. Bug: chromium:1340081,angleproject:7677 Change-Id: Ie1a09fde36b053cacf26351dd7ff549f17a45a55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3905326 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Peng Huang <penghuang@chromium.org>
Jamie Madill 2d3ce72d 2022-01-20T10:13:06 Refactor shared library load to avoid allocations. Fixes a leak of an angle::Library detected in the EGL loader. Bug: angleproject:6937 Change-Id: I623aa6172b98a35465e1d2641b92f67bdc5d24e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3403060 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 316dcb56 2021-10-06T09:31:49 Add SwANGLE Skia Gold testing. Required updating our system info helper to be able to retrieve SwiftShader device information. Bug: angleproject:6496 Change-Id: Ib38ea4da65d199433e17b87df2630c3fd77cb619 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208646 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill d27552f2 2021-11-11T11:43:30 Re-land: "Vulkan: Allow SystemInfo to pick ICD." Re-land fixes build on iOS and Android with ANGLE/Vulkan. This will be used in conjunction with SwiftShader. Bug: angleproject:6496 Change-Id: Id38403da1e377bba293dc8368d1c1aac29bf56a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3282426 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill a9f2e87e 2021-11-12T15:02:50 Revert "Vulkan: Allow SystemInfo to pick ICD." This reverts commit b5adbe272e4829d77105e49607bf8ddafd385f17. Reason for revert: Fails GN check on Android/iOS in Chrome: https://chromium-review.googlesource.com/c/chromium/src/+/3276779/ Original change's description: > Vulkan: Allow SystemInfo to pick ICD. > > This will be used in conjunction with SwiftShader. > > Bug: angleproject:6496 > Change-Id: I894aa4cf3b9473738b549de9941eb82e09234121 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276515 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> TBR=syoussefi@chromium.org,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com Change-Id: I198802d6bc93993d3544ed4627e131cb7b93f381 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: angleproject:6496 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276045 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b5adbe27 2021-11-11T11:43:30 Vulkan: Allow SystemInfo to pick ICD. This will be used in conjunction with SwiftShader. Bug: angleproject:6496 Change-Id: I894aa4cf3b9473738b549de9941eb82e09234121 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276515 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 48da1c35 2021-07-16T13:24:34 Vulkan: Prefer the local vulkan loader over the system one. Load the Vulkan loader ourselves and give vkGetInstanceProcAddr to volk. This allows us to always prefer loading from the current module directory instead of using the platform-specific ordering. Refactor angle::Library loading to use ModuleDir instead of ApplicationDir. CL originally authored by Geoff Lang. Bug: chromium:1219969 Change-Id: I21d1926e90fd66e1c23cea7323991ae55f3d22d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035444 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 51937ab3 2021-06-25T09:10:42 Re-land "Add SearchType to OpenSharedLibraryWithExtension." This fixes a bug in SystemInfo_vulkan where we were using the System search path for the Vulkan loader when we prefer using the custom ANGLE loader. Re-land fixes a bug where we would try to load the custom libVulkan on Android and other platforms where we should be using the system version. Bug: chromium:1219969 Change-Id: I34b592fb87cbddfd02c837a17942cac54c85d9d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3007265 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov f8d5d5ed 2021-07-05T21:11:23 Revert "Add SearchType to OpenSharedLibraryWithExtension." This reverts commit 18e99f4a2b37468b103da4a56c5b0fff25458062. Reason for revert: breaks Mac, e.g. https://ci.chromium.org/ui/p/chromium/builders/ci/mac-arm64-rel-tests/2197/overview Original change's description: > Add SearchType to OpenSharedLibraryWithExtension. > > This fixes a bug in SystemInfo_vulkan where we were using the > System search path for the Vulkan loader when we prefer using the > custom ANGLE loader. > > Bug: chromium:1219969 > Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: chromium:1219969, chromium:1225040, chromium:1226675 Change-Id: I7a7e329181b69b0fb546e5245d8842723077126f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3006320 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 5f869b74 2021-06-28T18:02:42 Revert "Vulkan: Load custom Vk Loader." This reverts commit e6e99c5472d2fe9beaa12840fa4a71191667b9a4. Reason for revert: Seems to be flaking on linux-clang-rel: https://ci.chromium.org/ui/p/angle/builders/try/linux-clang-rel/22602/overview Original change's description: > Vulkan: Load custom Vk Loader. > > Uses a GN copy rule to duplicate the loader. Also updates volk to > load using the new custom loader. Once both are in place we can > go back and remove the copy. > > Bug: chromium:1219969 > Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Bug: chromium:1219969 Change-Id: Ib29014e728c1ce63c5e5bf7136ce19de7692964d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2987874 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e6e99c54 2021-06-23T08:25:58 Vulkan: Load custom Vk Loader. Uses a GN copy rule to duplicate the loader. Also updates volk to load using the new custom loader. Once both are in place we can go back and remove the copy. Bug: chromium:1219969 Change-Id: I8c48d168a842539f7cdba1ebfdaf3b08c3e1990d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2982499 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Jamie Madill 18e99f4a 2021-06-25T09:10:42 Add SearchType to OpenSharedLibraryWithExtension. This fixes a bug in SystemInfo_vulkan where we were using the System search path for the Vulkan loader when we prefer using the custom ANGLE loader. Bug: chromium:1219969 Change-Id: Iedf0fd11fe9ed8cc020b445ea9e12a7936937361 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2988791 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 814dc299 2021-05-25T12:38:47 Add nullptr check for pfnGetPhysicalDeviceProperties This function may be called without checking the pointer. Speculative fix for a crash in GetSystemInfoVulkan. Bug: chromium:1211839 Change-Id: Ia7fa55fc328d02bdcd6d48e9b93f552aaea2b284 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2917353 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Xiaoxuan Liu ed4f7cb6 2021-03-03T17:56:07 Reland "Reland "Add support for Linux GPU info with Vulkan backend"" This is a reland of 9a8397327f9aac278f4bd1f5ab9094eec7e7798b Chrome Linux crash issue could be fixed in 0615bbde39ca42e27eb764b2b4986b21ab602ce9, let's reland this now. Original change's description: > Reland "Add support for Linux GPU info with Vulkan backend" > > This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4 > > 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: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5717 Change-Id: Iad6736f9137b7e9640c97fa2b9eded3fd37ac88f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2821410 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis e981675a 2021-03-31T21:03:24 Revert "Reland "Add support for Linux GPU info with Vulkan backend"" This reverts commit 9a8397327f9aac278f4bd1f5ab9094eec7e7798b. Reason for revert: Crashes when libpci path fails on some desktop platforms and the fallback path to Vulkan is taken. Original change's description: > Reland "Add support for Linux GPU info with Vulkan backend" > > This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4 > > 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: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Jamie Madill <jmadill@chromium.org> Bug: angleproject:5717 Bug: chromium:1192586 Change-Id: I04f13fd4bf1d57a3ed510cd3bdf743066de96523 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2798394 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xiaoxuan Liu 9a839732 2021-03-03T17:56:07 Reland "Add support for Linux GPU info with Vulkan backend" This is a reland of 5c09c1f882f15e1a77577f1a62d861355aac90a4 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: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Austin Eng 8092ed72 2021-03-04T21:29:55 Revert "Add support for Linux GPU info with Vulkan backend" This reverts commit 5c09c1f882f15e1a77577f1a62d861355aac90a4. Reason for revert: Breaks the Chrome OS build. 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: I97a27295818371556fd09837485a9132f74748c6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2737557 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Austin Eng <enga@chromium.org>
Xiaoxuan Liu 5c09c1f8 2021-03-03T17:56:07 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>
Jamie Madill 068617d6 2020-10-05T20:42:57 Fix debug message formatting. Also includes a refactor of GLenum utils. Bug: angleproject:5131 Change-Id: Ic2d974ef5612b3609ae66bcca087cc0442f43888 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2447042 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill e1d1b8b3 2020-09-29T19:59:54 Fix info collection on Android without Vulkan. Allows Vulkan info collection even if Vk is not enabled in ANGLE. Also removes the system_utils error message so that the Android test runner can parse the standard output without conflicts. Bug: chromium:1133459 Bug: angleproject:5109 Change-Id: I7d7bff0f1c3e456342f27538812b33ee6cd1054b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2436657 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5173a8e1 2020-09-23T23:01:21 Enable Vulkan SystemInfo on more platforms. Can be used in the gold tests to produce device info. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I60d3ddc7d17cd00aa816dd266a54f6d6a62770d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2427871 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Michael Spang b630bf9e 2020-01-24T17:27:01 Fuchsia: Implement SystemInfo on Fuchsia The Android vulkan code is reusable, so move that to a new file SystemInfo_vulkan.cpp and call it in the Android & Fuchsia implementations. This is necessary to skip tests based on GPU. Bug: angleproject:4349, angleproject:4352 Change-Id: I8330cfcdbd41f4d51391bd5ed7f0820c55e02801 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2023909 Commit-Queue: Michael Spang <spang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>