79 lines
2.2 KiB
Plaintext
79 lines
2.2 KiB
Plaintext
|
// Copyright (c) 2016-2017 The Khronos Group Inc.
|
||
|
// Copyright notice at https://www.khronos.org/registry/speccopyright.html
|
||
|
|
||
|
[[VK_KHX_external_semaphore]]
|
||
|
== VK_KHX_external_semaphore
|
||
|
|
||
|
*Name String*::
|
||
|
+VK_KHX_external_semaphore+
|
||
|
*Extension Type*::
|
||
|
Device extension
|
||
|
*Registered Extension Number*::
|
||
|
78
|
||
|
*Status*::
|
||
|
Draft
|
||
|
*Last Modified Date*::
|
||
|
2016-10-21
|
||
|
*Revision*::
|
||
|
1
|
||
|
*IP Status*::
|
||
|
No known IP claims.
|
||
|
*Dependencies*::
|
||
|
- This extension is written against version 1.0 of the Vulkan API.
|
||
|
- Requires +VK_KHR_external_semaphore_capabilities+.
|
||
|
*Contributors*::
|
||
|
- James Jones, NVIDIA
|
||
|
- Jeff Juliano, NVIDIA
|
||
|
*Contact*::
|
||
|
James Jones (jajones 'at' nvidia.com)
|
||
|
|
||
|
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.
|
||
|
|
||
|
=== New Object Types
|
||
|
|
||
|
None.
|
||
|
|
||
|
=== New Enum Constants
|
||
|
|
||
|
* ename:VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHX
|
||
|
* ename:VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX
|
||
|
|
||
|
=== New Enums
|
||
|
|
||
|
None.
|
||
|
|
||
|
=== New Structs
|
||
|
|
||
|
* slink:VkExportSemaphoreCreateInfoKHX
|
||
|
|
||
|
=== New Functions
|
||
|
|
||
|
None.
|
||
|
|
||
|
=== 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 undesireable 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 can not be used to complete the requested
|
||
|
import operation.
|
||
|
However, implementations need not validate handles are of the exact type
|
||
|
specified by the application.
|