aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYahan Zhou <yahan@google.com>2023-10-11 18:31:26 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-10-11 18:31:26 +0000
commite114d43fa1153f45ff9fa6be38d2aa84db3e62a5 (patch)
treea98a018e1ce29a80872a03ecbe2f1bae636c1490
parent58dd3b6a6f6c577c3e60391fd6e95265e99c91ba (diff)
parent9db4319ce4f5b83334a29988a6b9200a8b353316 (diff)
downloadgoldfish-opengl-e114d43fa1153f45ff9fa6be38d2aa84db3e62a5.tar.gz
Disable compatible handle types for semaphore timeline am: 9db4319ce4
Original change: https://googleplex-android-review.googlesource.com/c/device/generic/goldfish-opengl/+/25010782 Change-Id: I8329afa915aad056cb7511b320de2a4475922bf5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--system/vulkan_enc/ResourceTracker.cpp11
-rw-r--r--system/vulkan_enc/vk_struct_id.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 906da0f1..014ecaaa 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -6876,7 +6876,16 @@ public:
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT;
}
#else
- if (pExternalSemaphoreInfo->handleType ==
+ 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;
diff --git a/system/vulkan_enc/vk_struct_id.h b/system/vulkan_enc/vk_struct_id.h
index 7fc535c1..355b07fb 100644
--- a/system/vulkan_enc/vk_struct_id.h
+++ b/system/vulkan_enc/vk_struct_id.h
@@ -81,6 +81,7 @@ REGISTER_VK_STRUCT_ID(VkBufferOpaqueCaptureAddressCreateInfo, VK_STRUCTURE_TYPE_
REGISTER_VK_STRUCT_ID(VkBufferDeviceAddressCreateInfoEXT, VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT);
REGISTER_VK_STRUCT_ID(VkGraphicsPipelineCreateInfo, VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO);
REGISTER_VK_STRUCT_ID(VkPipelineRenderingCreateInfo, VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO);
+REGISTER_VK_STRUCT_ID(VkPhysicalDeviceExternalSemaphoreInfo, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO);
#undef REGISTER_VK_STRUCT_ID