Vulkan-Docs/doc/specs/vulkan/appendices/VK_KHR_external_fence_win32.txt
Jon Leech dbfd1b68c4 Change log for July 13, 2017 Vulkan 1.0.54 spec update:
* Bump API patch number and header version number to 54 for this update.

Github Issues:

Internal Issues:

  * Fix tessellation domain to have an upper-left origin in the
    <<img-tessellation-topology-ul, tessellation toplogy image>> and related
    language. CTS and all implementations were already doing this, it was
    just a documentation bug that it was flipped to lower-left (internal
    issue 603).
  * Add a section to the style guide describing how VUID tags are changed
    and removed when the corresponding Valid Usage statements are modified
    (internal issue 829).
  * Add explicit Valid Usage statement to
    slink:VkPipelineDynamicStateCreateInfo to require that members of
    pname:pDynamicStates must be unique (internal issue 851).

New Extensions:

  * `VK_KHR_16bit_storage`
  * `VK_KHR_dedicated_allocation`
  * `VK_KHR_external_fence`
  * `VK_KHR_external_fence_capabilities`
  * `VK_KHR_external_fence_fd`
  * `VK_KHR_external_fence_win32`
  * `VK_KHR_get_memory_requirements2`
  * `VK_KHR_storage_buffer_storage_class`
  * `VK_KHR_variable_pointers`

Extensions Promoted From KHX To KHR Status:

  * `VK_KHR_external_memory`
  * `VK_KHR_external_memory_capabilities`
  * `VK_KHR_external_memory_fd`
  * `VK_KHR_external_memory_win32`
  * `VK_KHR_external_semaphore`
  * `VK_KHR_external_semaphore_capabilities`
  * `VK_KHR_external_semaphore_fd`
  * `VK_KHR_external_semaphore_win32`
  * `VK_KHR_win32_keyed_mutex`
2017-07-11 17:57:41 -07:00

83 lines
2.3 KiB
Plaintext

// Copyright (c) 2016-2017 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
[[VK_KHR_external_fence_win32]]
== VK_KHR_external_fence_win32
*Name String*::
+VK_KHR_external_fence_win32+
*Extension Type*::
Device extension
*Registered Extension Number*::
115
*Status*::
Draft
*Last Modified Date*::
2017-05-08
*Revision*::
1
*IP Status*::
No known IP claims.
*Dependencies*::
- This extension is written against version 1.0 of the Vulkan API.
- Depends on +VK_KHR_external_fence_capabilities+.
*Contributors*::
- Jesse Hall, Google
- James Jones, NVIDIA
- Jeff Juliano, NVIDIA
- Cass Everitt, Oculus
- Contributors to
<<VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_win32>>
*Contact*::
Jesse Hall (jessehall 'at' google.com)
An application using external memory may wish to synchronize access to that
memory using fences.
This extension enables an application to export fence payload to and import
fence payload from Windows handles.
=== New Object Types
None.
=== New Enum Constants
* ename:VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR
* ename:VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR
* ename:VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR
=== New Enums
None.
=== New Structs
* slink:VkImportFenceWin32HandleInfoKHR
* slink:VkExportFenceWin32HandleInfoKHR
* slink:VkFenceGetWin32HandleInfoKHR
=== New Functions
* flink:vkImportFenceWin32HandleKHR
* flink:vkGetFenceWin32HandleKHR
=== Issues
This extension borrows concepts, semantics, and language from
<<VK_KHR_external_semaphore_win32,VK_KHR_external_semaphore_win32>>.
That extension's issues apply equally to this extension.
1) Should D3D12 fence handle types be supported, like they are for
semaphores?
*RESOLVED*: No.
Doing so would require extending the fence signal and wait operations to
provide values to signal / wait for, like sname:VkD3D12FenceSubmitInfoKHR
does.
A D3D12 fence can be signaled by importing it into a elink:VkSemaphore
instead of a elink:VkFence, and applications can check status or wait on the
D3D12 fence using non-Vulkan APIs.
The convenience of being able to do these operations on sname:VkFence
objects doesn't justify the extra API complexity.