diff options
author | 2025-04-02 19:48:53 -0700 | |
---|---|---|
committer | 2025-04-02 19:48:53 -0700 | |
commit | 52a09bec39d969285470f810fbcbdf4079a91586 (patch) | |
tree | 26c7f3c78006197b7f5aac6910a31090244cea37 | |
parent | 37bc008a53d0b622561e3619701cde287add886c (diff) | |
parent | 4c9d5120a05bfa9683237d4ac7153c7466ae9797 (diff) |
Merge cherrypicks of ['googleplex-android-review.googlesource.com/32730615'] into 25Q2-release.
Change-Id: Ic6d404122bbd0111b0a567ac414f906f1e8c44bd
-rw-r--r-- | vulkan/libvulkan/driver.cpp | 13 |
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; |