Disable compatible handle types for semaphore timeline
Bug: 304373623
Test: dEQP-VK.api.external.semaphore.sync_fd#info_timeline
Change-Id: I7708e9827524b1b08f06dd58422f0853ed438c88
diff --git a/guest/vulkan_enc/ResourceTracker.cpp b/guest/vulkan_enc/ResourceTracker.cpp
index 95a9ac9..1bc726b 100644
--- a/guest/vulkan_enc/ResourceTracker.cpp
+++ b/guest/vulkan_enc/ResourceTracker.cpp
@@ -6434,7 +6434,18 @@
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT;
}
#else
- if (pExternalSemaphoreInfo->handleType == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT) {
+ const VkSemaphoreTypeCreateInfo* semaphoreTypeCi =
+ vk_find_struct<VkSemaphoreTypeCreateInfo>(pExternalSemaphoreInfo);
+ bool isSemaphoreTimeline =
+ semaphoreTypeCi != nullptr && semaphoreTypeCi->semaphoreType == VK_SEMAPHORE_TYPE_TIMELINE;
+ if (isSemaphoreTimeline) {
+ // b/304373623
+ // dEQP-VK.api.external.semaphore.sync_fd#info_timeline
+ pExternalSemaphoreProperties->compatibleHandleTypes = 0;
+ pExternalSemaphoreProperties->exportFromImportedHandleTypes = 0;
+ pExternalSemaphoreProperties->externalSemaphoreFeatures = 0;
+ } else if (pExternalSemaphoreInfo->handleType ==
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT) {
pExternalSemaphoreProperties->compatibleHandleTypes |=
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT;
pExternalSemaphoreProperties->exportFromImportedHandleTypes |=