VK_KHR_external_fence_win32(3)

# VK_KHR_external_fence_win32(3) Manual Page

## Name

VK_KHR_external_fence_win32 - device extension

Loading… please wait.

## Registered Extension Number

115

## Revision

1

## Ratification Status

Ratified

## Extension and Version Dependencies

VK_KHR_external_fence

## Contact

- Jesse Hall [GitHub]critsec

## Other Extension Metadata

Last Modified Date

  2017-05-08

IP Status

  No known IP claims.

Contributors

  - Jesse Hall, Google

  - James Jones, NVIDIA

  - Jeff Juliano, NVIDIA

  - Cass Everitt, Oculus

  - Contributors to `VK_KHR_external_semaphore_win32`

## Description

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 Commands

- vkGetFenceWin32HandleKHR

- vkImportFenceWin32HandleKHR

## New Structures

- VkFenceGetWin32HandleInfoKHR

- VkImportFenceWin32HandleInfoKHR

- Extending VkFenceCreateInfo:

  - VkExportFenceWin32HandleInfoKHR

## New Enum Constants

- `VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME`

- `VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION`

- Extending VkStructureType:

  - VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR

  - VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR

  - VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR

## Issues

This extension borrows concepts, semantics, and language from `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 `VkD3D12FenceSubmitInfoKHR` does. A D3D12 fence can be signaled by importing it into a VkSemaphore instead of a 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 `VkFence` objects does not justify the extra API complexity.

## Version History

- Revision 1, 2017-05-08 (Jesse Hall)

  - Initial revision

## See Also

No cross-references are available

## Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0