From: Jason Ekstrand Date: Thu, 13 Jul 2017 18:40:46 +0000 (-0700) Subject: anv: Drop support for VK_KHX_external_semaphore_* X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dc179aa1231bdc503ceeedba705cdb1fb2df36e2;p=platform%2Fupstream%2Fmesa.git anv: Drop support for VK_KHX_external_semaphore_* These have been formally deprecated by Khronos never to be shipped again. The KHR versions should be implemented/used instead. Reviewed-by: Samuel Iglesias Gonsálvez Reviewed-by: Lionel Landwerlin --- diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 7c26960..f99f2cd 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -437,10 +437,6 @@ static const VkExtensionProperties global_extensions[] = { .specVersion = 6, }, #endif - { - .extensionName = VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME, - .specVersion = 1, - }, }; static const VkExtensionProperties device_extensions[] = { @@ -473,14 +469,6 @@ static const VkExtensionProperties device_extensions[] = { .specVersion = 68, }, { - .extensionName = VK_KHX_EXTERNAL_SEMAPHORE_EXTENSION_NAME, - .specVersion = 1, - }, - { - .extensionName = VK_KHX_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME, - .specVersion = 1, - }, - { .extensionName = VK_KHX_MULTIVIEW_EXTENSION_NAME, .specVersion = 1, }, diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py index 0de83fa..c2d35b7 100644 --- a/src/intel/vulkan/anv_entrypoints_gen.py +++ b/src/intel/vulkan/anv_entrypoints_gen.py @@ -46,9 +46,6 @@ SUPPORTED_EXTENSIONS = [ 'VK_KHR_wayland_surface', 'VK_KHR_xcb_surface', 'VK_KHR_xlib_surface', - 'VK_KHX_external_semaphore', - 'VK_KHX_external_semaphore_capabilities', - 'VK_KHX_external_semaphore_fd', 'VK_KHX_multiview', ] diff --git a/src/intel/vulkan/anv_queue.c b/src/intel/vulkan/anv_queue.c index b12b2e0..2c10e9d 100644 --- a/src/intel/vulkan/anv_queue.c +++ b/src/intel/vulkan/anv_queue.c @@ -528,38 +528,11 @@ VkResult anv_CreateSemaphore( if (semaphore == NULL) return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); - const VkExportSemaphoreCreateInfoKHX *export = - vk_find_struct_const(pCreateInfo->pNext, EXPORT_SEMAPHORE_CREATE_INFO_KHX); - VkExternalSemaphoreHandleTypeFlagsKHX handleTypes = - export ? export->handleTypes : 0; - - if (handleTypes == 0) { - /* The DRM execbuffer ioctl always execute in-oder so long as you stay - * on the same ring. Since we don't expose the blit engine as a DMA - * queue, a dummy no-op semaphore is a perfectly valid implementation. - */ - semaphore->permanent.type = ANV_SEMAPHORE_TYPE_DUMMY; - } else if (handleTypes & VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX) { - assert(handleTypes == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX); - - semaphore->permanent.type = ANV_SEMAPHORE_TYPE_BO; - VkResult result = anv_bo_cache_alloc(device, &device->bo_cache, - 4096, &semaphore->permanent.bo); - if (result != VK_SUCCESS) { - vk_free2(&device->alloc, pAllocator, semaphore); - return result; - } - - /* If we're going to use this as a fence, we need to *not* have the - * EXEC_OBJECT_ASYNC bit set. - */ - assert(!(semaphore->permanent.bo->flags & EXEC_OBJECT_ASYNC)); - } else { - assert(!"Unknown handle type"); - vk_free2(&device->alloc, pAllocator, semaphore); - return vk_error(VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX); - } - + /* The DRM execbuffer ioctl always execute in-oder so long as you stay + * on the same ring. Since we don't expose the blit engine as a DMA + * queue, a dummy no-op semaphore is a perfectly valid implementation. + */ + semaphore->permanent.type = ANV_SEMAPHORE_TYPE_DUMMY; semaphore->temporary.type = ANV_SEMAPHORE_TYPE_NONE; *pSemaphore = anv_semaphore_to_handle(semaphore); @@ -601,81 +574,3 @@ void anv_DestroySemaphore( vk_free2(&device->alloc, pAllocator, semaphore); } - -void anv_GetPhysicalDeviceExternalSemaphorePropertiesKHX( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo, - VkExternalSemaphorePropertiesKHX* pExternalSemaphoreProperties) -{ - switch (pExternalSemaphoreInfo->handleType) { - case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX: - pExternalSemaphoreProperties->exportFromImportedHandleTypes = - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX; - pExternalSemaphoreProperties->compatibleHandleTypes = - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX; - pExternalSemaphoreProperties->externalSemaphoreFeatures = - VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHX | - VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHX; - break; - - default: - pExternalSemaphoreProperties->exportFromImportedHandleTypes = 0; - pExternalSemaphoreProperties->compatibleHandleTypes = 0; - pExternalSemaphoreProperties->externalSemaphoreFeatures = 0; - } -} - -VkResult anv_ImportSemaphoreFdKHX( - VkDevice _device, - const VkImportSemaphoreFdInfoKHX* pImportSemaphoreFdInfo) -{ - ANV_FROM_HANDLE(anv_device, device, _device); - ANV_FROM_HANDLE(anv_semaphore, semaphore, pImportSemaphoreFdInfo->semaphore); - - switch (pImportSemaphoreFdInfo->handleType) { - case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX: { - struct anv_bo *bo; - VkResult result = anv_bo_cache_import(device, &device->bo_cache, - pImportSemaphoreFdInfo->fd, 4096, - &bo); - if (result != VK_SUCCESS) - return result; - - /* If we're going to use this as a fence, we need to *not* have the - * EXEC_OBJECT_ASYNC bit set. - */ - assert(!(bo->flags & EXEC_OBJECT_ASYNC)); - - anv_semaphore_impl_cleanup(device, &semaphore->permanent); - - semaphore->permanent.type = ANV_SEMAPHORE_TYPE_BO; - semaphore->permanent.bo = bo; - - return VK_SUCCESS; - } - - default: - return vk_error(VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX); - } -} - -VkResult anv_GetSemaphoreFdKHX( - VkDevice _device, - VkSemaphore _semaphore, - VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, - int* pFd) -{ - ANV_FROM_HANDLE(anv_device, device, _device); - ANV_FROM_HANDLE(anv_semaphore, semaphore, _semaphore); - - switch (semaphore->permanent.type) { - case ANV_SEMAPHORE_TYPE_BO: - return anv_bo_cache_export(device, &device->bo_cache, - semaphore->permanent.bo, pFd); - - default: - return vk_error(VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX); - } - - return VK_SUCCESS; -}