/ appendices / VK_KHR_external_fence_win32.txt
VK_KHR_external_fence_win32.txt
 1  // Copyright (c) 2016-2019 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  
 5  include::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  
18  An application using external memory may wish to synchronize access to that
19  memory using fences.
20  This extension enables an application to export fence payload to and import
21  fence payload from Windows handles.
22  
23  === New Object Types
24  
25  None.
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  
35  None.
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  
50  This extension borrows concepts, semantics, and language from
51  `<<VK_KHR_external_semaphore_win32>>`.
52  That extension's issues apply equally to this extension.
53  
54  1) Should D3D12 fence handle types be supported, like they are for
55  semaphores?
56  
57  *RESOLVED*: No.
58  Doing so would require extending the fence signal and wait operations to
59  provide values to signal / wait for, like sname:VkD3D12FenceSubmitInfoKHR
60  does.
61  A D3D12 fence can be signaled by importing it into a slink:VkSemaphore
62  instead of a slink:VkFence, and applications can check status or wait on the
63  D3D12 fence using non-Vulkan APIs.
64  The convenience of being able to do these operations on sname:VkFence
65  objects doesn't justify the extra API complexity.