2016-07-11 01:13:41 +00:00
|
|
|
// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
|
|
|
|
// Creative Commons Attribution 4.0 International License; see
|
|
|
|
// http://creativecommons.org/licenses/by/4.0/
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
vkWaitForFences(3)
|
2016-07-11 01:13:41 +00:00
|
|
|
==================
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
Name
|
|
|
|
----
|
|
|
|
vkWaitForFences - Wait for one or more fences to become signaled.
|
|
|
|
|
|
|
|
C Specification
|
|
|
|
---------------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin vkWaitForFences Wait for one or more fences to become signaled.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
To cause the host to wait until any one or all of a group of fences
|
|
|
|
is signaled, use the command:
|
2016-02-16 09:53:44 +00:00
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
include::../protos/vkWaitForFences.txt[]
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
Parameters
|
|
|
|
----------
|
2016-02-16 09:53:44 +00:00
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
* pname:device is the logical device that owns the fences.
|
|
|
|
* pname:fenceCount is the number of fences to wait on.
|
|
|
|
* pname:pFences is a pointer to an array of pname:fenceCount fence
|
|
|
|
handles.
|
|
|
|
* pname:waitAll is the condition that must: be satisfied to successfully
|
|
|
|
unblock the wait. If pname:waitAll is ename:VK_TRUE, then the condition
|
|
|
|
is that all fences in pname:pFences are signaled. Otherwise, the
|
|
|
|
condition is that at least one fence in pname:pFences is signaled.
|
|
|
|
* pname:timeout is the timeout period in units of nanoseconds.
|
|
|
|
pname:timeout is adjusted to the closest value allowed by the
|
|
|
|
implementation-dependent timeout accuracy, which may: be substantially
|
|
|
|
longer than one nanosecond, and may: be longer than the requested
|
|
|
|
period.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
-----------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
If the condition is satisfied when fname:vkWaitForFences is called, then
|
|
|
|
fname:vkWaitForFences returns immediately. If the condition is not satisfied
|
|
|
|
at the time fname:vkWaitForFences is called, then fname:vkWaitForFences will
|
|
|
|
block and wait up to pname:timeout nanoseconds for the condition to become
|
|
|
|
satisfied.
|
|
|
|
|
|
|
|
If pname:timeout is zero, then fname:vkWaitForFences does not
|
|
|
|
wait, but simply returns the current state of the fences. ename:VK_TIMEOUT
|
|
|
|
will be returned in this case if the condition is not satisfied, even though
|
|
|
|
no actual wait was performed.
|
|
|
|
|
|
|
|
If the specified timeout period expires before the condition is satisfied,
|
|
|
|
fname:vkWaitForFences returns ename:VK_TIMEOUT. If the condition is
|
|
|
|
satisfied before pname:timeout nanoseconds has expired,
|
|
|
|
fname:vkWaitForFences returns ename:VK_SUCCESS.
|
|
|
|
|
|
|
|
[[synchronization-fences-devicewrites]]
|
|
|
|
fname:vkWaitForFences defines the second half of a memory dependency with
|
|
|
|
the host, for each fence being waited on. The memory dependency defined by
|
|
|
|
signaling a fence and waiting on the host does not guarantee that the
|
|
|
|
results of memory accesses will be visible to the host, or that the memory
|
|
|
|
is available. To provide that guarantee, the application must: insert a
|
|
|
|
memory barrier between the device writes and the end of the submission
|
|
|
|
that will signal the fence, with pname:dstAccessMask having the
|
|
|
|
ename:VK_ACCESS_HOST_READ_BIT bit set, with pname:dstStageMask having the
|
|
|
|
ename:VK_PIPELINE_STAGE_HOST_BIT bit set, and with the appropriate
|
|
|
|
pname:srcStageMask and pname:srcAccessMask members set to guarantee
|
|
|
|
completion of the writes. If the memory was allocated without the
|
|
|
|
ename:VK_MEMORY_PROPERTY_HOST_COHERENT_BIT set, then
|
|
|
|
fname:vkInvalidateMappedMemoryRanges must: be called after the fence is
|
|
|
|
signaled in order to ensure the writes are visible to the host, as described
|
|
|
|
in <<memory-device-hostaccess,Host Access to Device Memory Objects>>.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::../validity/protos/vkWaitForFences.txt[]
|
|
|
|
|
|
|
|
|
|
|
|
See Also
|
|
|
|
--------
|
|
|
|
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
basetype:VkBool32, slink:VkDevice, slink:VkFence
|
2016-07-11 01:13:41 +00:00
|
|
|
|
|
|
|
|
|
|
|
Document Notes
|
|
|
|
--------------
|
|
|
|
|
|
|
|
For more information, see the Vulkan Specification at URL
|
|
|
|
|
|
|
|
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkWaitForFences
|
|
|
|
|
|
|
|
This page is extracted from the Vulkan Specification.
|
|
|
|
Fixes and changes should be made to the Specification,not directly.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::footer.txt[]
|
2016-07-11 01:13:41 +00:00
|
|
|
|