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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31647>
This commit is contained in:
Chia-I Wu 2024-10-10 16:44:14 -07:00 committed by Marge Bot
parent fc52c6358c
commit 7f4f20c811
2 changed files with 4 additions and 39 deletions

View File

@ -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)

View File

@ -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, \