mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-16 00:07:49 +00:00
* Bump API patch number and header version number to 60 for this update. Github Issues: * Document that <<queries-timestamps, Timestamp Queries>> can only be meaningfully compared when they are written from the same queue (public issue 216). * Document that the `<extension>` tag `type` attribute is required for non-disabled extensions (derived from, but does not close public issue 354). * Clean up registry schema length attribute descriptions to be consistent and correct (public issue 555). Internal Issues: * Replace as much of the hand-written extension appendix metadata as possible with asciidoc includes generated from corresponding attributes of +vk.xml+, and enhance the style guide to match. This avoids inconsistencies between +vk.xml+ and the appendices, and produces a more uniform style (internal issue 137). * Remove the generated extDependency.{py,sh} files from the tree and create them dynamically on demand instead, reducing merge conflicts (internal issue 713). * Add a prototype tool for generating in-place difference markup for sections guarded by asciidoc conditionals, and new syntax for open blocks to support it (internal issue 833). * Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle types to the same physical device in the slink:VkPhysicalDeviceIDPropertiesKHR, flink:VkImportMemoryWin32HandleInfoKHR, slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR, slink:VkImportSemaphoreWin32HandleInfoKHR, slink:VkImportSemaphoreFdInfoKHR <<external-memory-handle-types-compatibility, External memory handle types compatibility>>, <<external-semaphore-handle-types-compatibility, External semaphore handle types compatibility>>, and <<external-fence-handle-types-compatibility, External fence handle types compatibility>> sections (internal issue 956). Other Issues: * Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there is an interaction, but not a strict dependency), and add a new `extension` attribute to the `<require` XML tag to allow classifying a subset of interfaces of an extension as requiring another extension. Update the registry schema and documentation accordingly. New Extensions: * `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask` GLSL extension) * `VK_EXT_sample_locations` * `VK_EXT_validation_cache`
72 lines
2.1 KiB
Plaintext
72 lines
2.1 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/
|
|
|
|
include::meta/VK_KHR_external_semaphore.txt[]
|
|
|
|
*Status*::
|
|
Draft
|
|
*Last Modified Date*::
|
|
2016-10-21
|
|
*IP Status*::
|
|
No known IP claims.
|
|
*Contributors*::
|
|
- Jason Ekstrand, Intel
|
|
- Jesse Hall, Google
|
|
- Tobias Hector, Imagination Technologies
|
|
- James Jones, NVIDIA
|
|
- Jeff Juliano, NVIDIA
|
|
- Matthew Netsch, Qualcomm Technologies, Inc.
|
|
- Ray Smith, ARM
|
|
- Chad Versace, Google
|
|
|
|
An application using external memory may wish to synchronize access to that
|
|
memory using semaphores.
|
|
This extension enables an application to create semaphores from which
|
|
non-Vulkan handles that reference the underlying synchronization primitive
|
|
can be exported.
|
|
|
|
=== New Object Types
|
|
|
|
None.
|
|
|
|
=== New Enum Constants
|
|
|
|
* ename:VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR
|
|
* ename:VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR
|
|
|
|
=== New Enums
|
|
|
|
* elink:VkSemaphoreImportFlagBitsKHR
|
|
|
|
=== New Structs
|
|
|
|
* slink:VkExportSemaphoreCreateInfoKHR
|
|
|
|
=== New Functions
|
|
|
|
None.
|
|
|
|
=== Issues
|
|
|
|
1) Should there be restrictions on what side effects can occur when waiting
|
|
on imported semaphores that are in an invalid state?
|
|
|
|
*RESOLVED*: Yes.
|
|
Normally, validating such state would be the responsibility of the
|
|
application, and the implementation would be free to enter an undefined
|
|
state if valid usage rules were violated.
|
|
However, this could cause security concerns when using imported semaphores,
|
|
as it would require the importing application to trust the exporting
|
|
application to ensure the state is valid.
|
|
Requiring this level of trust is undesireable for many potential use cases.
|
|
|
|
2) Must implementations validate external handles the application provides
|
|
as input to semaphore state import operations?
|
|
|
|
*RESOLVED*: Implementations must return an error to the application if the
|
|
provided semaphore state handle can not be used to complete the requested
|
|
import operation.
|
|
However, implementations need not validate handles are of the exact type
|
|
specified by the application.
|