diff options
author | Jason Ekstrand <[email protected]> | 2017-02-15 16:06:42 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2017-05-03 15:09:46 -0700 |
commit | 975c0f339f1122c578a33d36afedd0f7fef59fc4 (patch) | |
tree | eab2ea632497d129668442cd0089c95e165bf00f | |
parent | 298e054d0cfa7cac9e19bbdb5f64f0109dbcd8dc (diff) |
anv: Implement VK_KHX_external_semaphore
Reviewed-by: Chad Versace <[email protected]>
-rw-r--r-- | src/intel/vulkan/anv_device.c | 4 | ||||
-rw-r--r-- | src/intel/vulkan/anv_entrypoints_gen.py | 1 | ||||
-rw-r--r-- | src/intel/vulkan/anv_queue.c | 8 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 639c7456c3f..e73140b23f3 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -375,6 +375,10 @@ static const VkExtensionProperties device_extensions[] = { .specVersion = 1, }, { + .extensionName = VK_KHX_EXTERNAL_SEMAPHORE_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 fe95397d65c..cebbad037be 100644 --- a/src/intel/vulkan/anv_entrypoints_gen.py +++ b/src/intel/vulkan/anv_entrypoints_gen.py @@ -48,6 +48,7 @@ SUPPORTED_EXTENSIONS = [ 'VK_KHX_external_memory', 'VK_KHX_external_memory_capabilities', 'VK_KHX_external_memory_fd', + 'VK_KHX_external_semaphore', 'VK_KHX_external_semaphore_capabilities', 'VK_KHX_multiview', ] diff --git a/src/intel/vulkan/anv_queue.c b/src/intel/vulkan/anv_queue.c index 906eb25af0d..64c59006ca8 100644 --- a/src/intel/vulkan/anv_queue.c +++ b/src/intel/vulkan/anv_queue.c @@ -508,6 +508,14 @@ 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; + + /* External semaphores are not yet supported */ + assert(handleTypes == 0); + /* The DRM execbuffer ioctl always execute in-oder, even between * different rings. As such, a dummy no-op semaphore is a perfectly * valid implementation. |