From 7f4f20c81172ae83950fbe96b1c0bb60e7c184ae Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 10 Oct 2024 16:44:14 -0700 Subject: [PATCH] panvk: advertise VK_KHR_external_{fence,semaphore}_fd Remove panvk_GetPhysicalDeviceExternal{Fence,Semaphore}Properties and let vk_common_GetPhysicalDeviceExternal{Fence,Semaphore}Properties handle them. Part-of: --- docs/features.txt | 4 +-- src/panfrost/vulkan/panvk_physical_device.c | 39 ++------------------- 2 files changed, 4 insertions(+), 39 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index def8b43d708..9d94313ebc5 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -516,11 +516,11 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_display DONE (anv, nvk, pvr, radv, tu, v3dv) VK_KHR_display_swapchain not started VK_KHR_dynamic_rendering_local_read DONE (lvp, nvk, radv) - VK_KHR_external_fence_fd DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn) + VK_KHR_external_fence_fd DONE (anv, hasvk, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_KHR_external_fence_win32 not started VK_KHR_external_memory_fd DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_KHR_external_memory_win32 DONE (dzn) - VK_KHR_external_semaphore_fd DONE (anv, dzn, hasvk, nvk, pvr, radv, tu, v3dv, vn) + VK_KHR_external_semaphore_fd DONE (anv, dzn, hasvk, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_KHR_external_semaphore_win32 DONE (dzn) VK_KHR_fragment_shader_barycentric DONE (nvk/Turing+, radv/gfx10.3+) VK_KHR_fragment_shading_rate DONE (anv/gen11+, nvk/Turing+, radv/gfx10.3+, vn) diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index 4d51a3dc383..a2e6956d58b 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -154,9 +154,11 @@ get_device_extensions(const struct panvk_physical_device *device, .KHR_driver_properties = true, .KHR_dynamic_rendering = true, .KHR_external_fence = true, + .KHR_external_fence_fd = true, .KHR_external_memory = true, .KHR_external_memory_fd = true, .KHR_external_semaphore = true, + .KHR_external_semaphore_fd = true, .KHR_get_memory_requirements2 = true, .KHR_maintenance1 = true, .KHR_maintenance2 = true, @@ -905,43 +907,6 @@ panvk_GetPhysicalDeviceMemoryProperties2( }; } -VKAPI_ATTR void VKAPI_CALL -panvk_GetPhysicalDeviceExternalSemaphoreProperties( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalSemaphoreInfo *pExternalSemaphoreInfo, - VkExternalSemaphoreProperties *pExternalSemaphoreProperties) -{ - if ((pExternalSemaphoreInfo->handleType == - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT || - pExternalSemaphoreInfo->handleType == - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT)) { - pExternalSemaphoreProperties->exportFromImportedHandleTypes = - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT | - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT; - pExternalSemaphoreProperties->compatibleHandleTypes = - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT | - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT; - pExternalSemaphoreProperties->externalSemaphoreFeatures = - VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT | - VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT; - } else { - pExternalSemaphoreProperties->exportFromImportedHandleTypes = 0; - pExternalSemaphoreProperties->compatibleHandleTypes = 0; - pExternalSemaphoreProperties->externalSemaphoreFeatures = 0; - } -} - -VKAPI_ATTR void VKAPI_CALL -panvk_GetPhysicalDeviceExternalFenceProperties( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalFenceInfo *pExternalFenceInfo, - VkExternalFenceProperties *pExternalFenceProperties) -{ - pExternalFenceProperties->exportFromImportedHandleTypes = 0; - pExternalFenceProperties->compatibleHandleTypes = 0; - pExternalFenceProperties->externalFenceFeatures = 0; -} - #define DEVICE_PER_ARCH_FUNCS(_ver) \ VkResult panvk_v##_ver##_create_device( \ struct panvk_physical_device *physical_device, \