summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Android Build Coastguard Worker <android-build-coastguard-worker@google.com> 2025-04-02 19:48:53 -0700
committer Android Build Coastguard Worker <android-build-coastguard-worker@google.com> 2025-04-02 19:48:53 -0700
commit52a09bec39d969285470f810fbcbdf4079a91586 (patch)
tree26c7f3c78006197b7f5aac6910a31090244cea37
parent37bc008a53d0b622561e3619701cde287add886c (diff)
parent4c9d5120a05bfa9683237d4ac7153c7466ae9797 (diff)
Merge cherrypicks of ['googleplex-android-review.googlesource.com/32730615'] into 25Q2-release.
Change-Id: Ic6d404122bbd0111b0a567ac414f906f1e8c44bd
-rw-r--r--vulkan/libvulkan/driver.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/vulkan/libvulkan/driver.cpp b/vulkan/libvulkan/driver.cpp
index 28c1b5f663..caa3020e64 100644
--- a/vulkan/libvulkan/driver.cpp
+++ b/vulkan/libvulkan/driver.cpp
@@ -439,6 +439,19 @@ VkResult CreateInfoWrapper::SanitizeApiVersion() {
if (!is_instance_ || !instance_info_.pApplicationInfo)
return VK_SUCCESS;
+ // certain 1.3 icds in the wild may misbehave if the app requests
+ // the 1.4 instance api. since there are no actual instance api
+ // differences between these versions, downgrade the instance api
+ // to 1.3 for such icds.
+ if (icd_api_version_ >= VK_API_VERSION_1_3 &&
+ icd_api_version_ < VK_API_VERSION_1_4 &&
+ instance_info_.pApplicationInfo->apiVersion >= VK_API_VERSION_1_4) {
+ application_info_ = *instance_info_.pApplicationInfo;
+ application_info_.apiVersion = icd_api_version_;
+ instance_info_.pApplicationInfo = &application_info_;
+ return VK_SUCCESS;
+ }
+
if (icd_api_version_ > VK_API_VERSION_1_0 ||
instance_info_.pApplicationInfo->apiVersion < VK_API_VERSION_1_1)
return VK_SUCCESS;