From c23206757a1821738f112b59a698d95f8526b8e9 Mon Sep 17 00:00:00 2001 From: Jonathan Marek Date: Thu, 10 Sep 2020 23:37:09 -0400 Subject: [PATCH] turnip: require syncobj support Note: this means turnip requires kernel 5.8 (or older with syncobj patch). Signed-off-by: Jonathan Marek Part-of: --- src/freedreno/vulkan/tu_drm.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/freedreno/vulkan/tu_drm.c b/src/freedreno/vulkan/tu_drm.c index ad030520eb3..8c8d9244a92 100644 --- a/src/freedreno/vulkan/tu_drm.c +++ b/src/freedreno/vulkan/tu_drm.c @@ -310,9 +310,9 @@ tu_drm_device_init(struct tu_physical_device *device, "failed to open device %s", path); } - /* Version 1.3 added MSM_INFO_IOVA. */ + /* Version 1.6 added SYNCOBJ support. */ const int min_version_major = 1; - const int min_version_minor = 3; + const int min_version_minor = 6; version = drmGetVersion(fd); if (!version) { @@ -618,25 +618,14 @@ tu_GetSemaphoreFdKHR(VkDevice _device, return VK_SUCCESS; } -static bool tu_has_syncobj(struct tu_physical_device *pdev) -{ - uint64_t value; - if (drmGetCap(pdev->local_fd, DRM_CAP_SYNCOBJ, &value)) - return false; - return value && pdev->msm_major_version == 1 && pdev->msm_minor_version >= 6; -} - void tu_GetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo *pExternalSemaphoreInfo, VkExternalSemaphoreProperties *pExternalSemaphoreProperties) { - TU_FROM_HANDLE(tu_physical_device, pdev, physicalDevice); - - if (tu_has_syncobj(pdev) && - (pExternalSemaphoreInfo->handleType == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT || - pExternalSemaphoreInfo->handleType == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT)) { + 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 |