| // Copyright 2016-2021 The Khronos Group, Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_KHR_external_semaphore.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2016-10-21 |
| *IP Status*:: |
| No known IP claims. |
| *Interactions and External Dependencies*:: |
| - Promoted to Vulkan 1.1 Core |
| *Contributors*:: |
| - Jason Ekstrand, Intel |
| - Jesse Hall, Google |
| - Tobias Hector, Imagination Technologies |
| - James Jones, NVIDIA |
| - Jeff Juliano, NVIDIA |
| - Matthew Netsch, Qualcomm Technologies, Inc. |
| - Ray Smith, ARM |
| - Chad Versace, Google |
| |
| === Description |
| |
| An application using external memory may wish to synchronize access to that |
| memory using semaphores. |
| This extension enables an application to create semaphores from which |
| non-Vulkan handles that reference the underlying synchronization primitive |
| can be exported. |
| |
| === Promotion to Vulkan 1.1 |
| |
| All functionality in this extension is included in core Vulkan 1.1, with the |
| KHR suffix omitted. |
| The original type, enum and command names are still available as aliases of |
| the core functionality. |
| |
| include::{generated}/interfaces/VK_KHR_external_semaphore.txt[] |
| |
| === Issues |
| |
| 1) Should there be restrictions on what side effects can occur when waiting |
| on imported semaphores that are in an invalid state? |
| |
| *RESOLVED*: Yes. |
| Normally, validating such state would be the responsibility of the |
| application, and the implementation would be free to enter an undefined: |
| state if valid usage rules were violated. |
| However, this could cause security concerns when using imported semaphores, |
| as it would require the importing application to trust the exporting |
| application to ensure the state is valid. |
| Requiring this level of trust is undesirable for many potential use cases. |
| |
| 2) Must implementations validate external handles the application provides |
| as input to semaphore state import operations? |
| |
| *RESOLVED*: Implementations must return an error to the application if the |
| provided semaphore state handle cannot be used to complete the requested |
| import operation. |
| However, implementations need not validate handles are of the exact type |
| specified by the application. |
| |
| === Version History |
| |
| * Revision 1, 2016-10-21 (James Jones) |
| - Initial revision |