• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2016-2024 The Khronos Group Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5include::{generated}/meta/{refprefix}VK_KHR_external_semaphore.adoc[]
6
7=== Other Extension Metadata
8
9*Last Modified Date*::
10    2016-10-21
11*IP Status*::
12    No known IP claims.
13*Contributors*::
14  - Faith Ekstrand, Intel
15  - Jesse Hall, Google
16  - Tobias Hector, Imagination Technologies
17  - James Jones, NVIDIA
18  - Jeff Juliano, NVIDIA
19  - Matthew Netsch, Qualcomm Technologies, Inc.
20  - Ray Smith, ARM
21  - Lina Versace, Google
22
23=== Description
24
25An application using external memory may wish to synchronize access to that
26memory using semaphores.
27This extension enables an application to create semaphores from which
28non-Vulkan handles that reference the underlying synchronization primitive
29can be exported.
30
31=== Promotion to Vulkan 1.1
32
33All functionality in this extension is included in core Vulkan 1.1, with the
34KHR suffix omitted.
35The original type, enum and command names are still available as aliases of
36the core functionality.
37
38include::{generated}/interfaces/VK_KHR_external_semaphore.adoc[]
39
40=== Issues
41
421) Should there be restrictions on what side effects can occur when waiting
43on imported semaphores that are in an invalid state?
44
45*RESOLVED*: Yes.
46Normally, validating such state would be the responsibility of the
47application, and the implementation would be free to enter an undefined:
48state if valid usage rules were violated.
49However, this could cause security concerns when using imported semaphores,
50as it would require the importing application to trust the exporting
51application to ensure the state is valid.
52Requiring this level of trust is undesirable for many potential use cases.
53
542) Must implementations validate external handles the application provides
55as input to semaphore state import operations?
56
57*RESOLVED*: Implementations must return an error to the application if the
58provided semaphore state handle cannot be used to complete the requested
59import operation.
60However, implementations need not validate handles are of the exact type
61specified by the application.
62
63=== Version History
64
65  * Revision 1, 2016-10-21 (James Jones)
66  ** Initial revision
67