• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a
2// Creative Commons Attribution 4.0 International License; see
3// http://creativecommons.org/licenses/by/4.0/
4
5include::meta/VK_KHR_external_fence_win32.txt[]
6
7*Last Modified Date*::
8    2017-05-08
9*IP Status*::
10    No known IP claims.
11*Contributors*::
12  - Jesse Hall, Google
13  - James Jones, NVIDIA
14  - Jeff Juliano, NVIDIA
15  - Cass Everitt, Oculus
16  - Contributors to `<<VK_KHR_external_semaphore_win32>>`
17
18An application using external memory may wish to synchronize access to that
19memory using fences.
20This extension enables an application to export fence payload to and import
21fence payload from Windows handles.
22
23=== New Object Types
24
25None.
26
27=== New Enum Constants
28
29  * ename:VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
30  * ename:VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
31  * ename:VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
32
33=== New Enums
34
35None.
36
37=== New Structs
38
39  * slink:VkImportFenceWin32HandleInfoKHR
40  * slink:VkExportFenceWin32HandleInfoKHR
41  * slink:VkFenceGetWin32HandleInfoKHR
42
43=== New Functions
44
45  * flink:vkImportFenceWin32HandleKHR
46  * flink:vkGetFenceWin32HandleKHR
47
48=== Issues
49
50This extension borrows concepts, semantics, and language from
51`<<VK_KHR_external_semaphore_win32>>`.
52That extension's issues apply equally to this extension.
53
541) Should D3D12 fence handle types be supported, like they are for
55semaphores?
56
57*RESOLVED*: No.
58Doing so would require extending the fence signal and wait operations to
59provide values to signal / wait for, like sname:VkD3D12FenceSubmitInfoKHR
60does.
61A D3D12 fence can be signaled by importing it into a elink:VkSemaphore
62instead of a elink:VkFence, and applications can check status or wait on the
63D3D12 fence using non-Vulkan APIs.
64The convenience of being able to do these operations on sname:VkFence
65objects doesn't justify the extra API complexity.
66