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
|
|
|
vkCmdCopyQueryPoolResults(3)
|
|
|
|
============================
|
|
|
|
|
|
|
|
Name
|
|
|
|
----
|
|
|
|
vkCmdCopyQueryPoolResults - Copy the results of queries in a query pool to a buffer object.
|
|
|
|
|
|
|
|
C Specification
|
|
|
|
---------------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin vkCmdCopyQueryPoolResults Copy the results of queries in a query pool to a buffer object.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
To copy query statuses and numerical results directly to buffer memory,
|
|
|
|
call:
|
2016-02-16 09:53:44 +00:00
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
include::../protos/vkCmdCopyQueryPoolResults.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:commandBuffer is the command buffer into which this command will
|
|
|
|
be recorded.
|
|
|
|
* pname:queryPool is the query pool managing the queries containing the
|
|
|
|
desired results.
|
|
|
|
* pname:firstQuery is the initial query index.
|
|
|
|
* pname:queryCount is the number of queries. pname:firstQuery and
|
|
|
|
pname:queryCount together define a range of queries.
|
|
|
|
* pname:dstBuffer is a sname:VkBuffer object that will receive the results
|
|
|
|
of the copy command.
|
|
|
|
* pname:dstOffset is an offset into pname:dstBuffer.
|
|
|
|
* pname:stride is the stride in bytes between results for individual
|
|
|
|
queries within pname:dstBuffer. The required size of the backing memory
|
|
|
|
for pname:dstBuffer is determined as described above for
|
|
|
|
flink:vkGetQueryPoolResults.
|
|
|
|
* pname:flags is a bitmask of elink:VkQueryResultFlagBits specifying how
|
|
|
|
and when results are returned.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
-----------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
fname:vkCmdCopyQueryPoolResults is guaranteed to see the effect of previous
|
|
|
|
uses of fname:vkCmdResetQueryPool in the same queue, without any additional
|
|
|
|
synchronization. Thus, the results will always reflect the most
|
|
|
|
recent use of the query.
|
|
|
|
|
|
|
|
pname:flags has the same possible values described above for the pname:flags
|
|
|
|
parameter of flink:vkGetQueryPoolResults, but the different style of
|
|
|
|
execution causes some subtle behavioral differences. Because
|
|
|
|
fname:vkCmdCopyQueryPoolResults executes in order with respect to other
|
|
|
|
query commands, there is less ambiguity about which use of a query is being
|
|
|
|
requested.
|
|
|
|
|
|
|
|
If no bits are set in pname:flags, results for all requested queries in the
|
|
|
|
available state are written as 32-bit unsigned integer values, and nothing
|
|
|
|
is written for queries in the unavailable state.
|
|
|
|
|
|
|
|
If ename:VK_QUERY_RESULT_64_BIT is set, the results are written as an array
|
|
|
|
of 64-bit unsigned integer values as described for
|
|
|
|
flink:vkGetQueryPoolResults.
|
|
|
|
|
|
|
|
If ename:VK_QUERY_RESULT_WAIT_BIT is set, the implementation will wait for
|
|
|
|
each query's status to be in the available state before retrieving the
|
|
|
|
numerical results for that query. This is guaranteed to reflect the most
|
|
|
|
recent use of the query on the same queue, assuming that the query is
|
|
|
|
not being simultaneously used by other queues. If the query does not become
|
|
|
|
available in a finite amount of time (e.g. due to not issuing a query
|
|
|
|
since the last reset), a ename:VK_ERROR_DEVICE_LOST error may: occur.
|
|
|
|
|
|
|
|
Similarly, if ename:VK_QUERY_RESULT_WITH_AVAILABILITY_BIT is set and
|
|
|
|
ename:VK_QUERY_RESULT_WAIT_BIT is not set, the availability is guaranteed to
|
|
|
|
reflect the most recent use of the query on the same queue, assuming
|
|
|
|
that the query is not being simultaneously used by other queues. As with
|
|
|
|
fname:vkGetQueryPoolResults, implementations must: guarantee that if they
|
|
|
|
return a non-zero availability value, then the numerical results are valid.
|
|
|
|
|
|
|
|
If ename:VK_QUERY_RESULT_PARTIAL_BIT is set, ename:VK_QUERY_RESULT_WAIT_BIT
|
|
|
|
is not set, and the query's status is unavailable, an intermediate
|
|
|
|
result value between zero and the final result value is written for that
|
|
|
|
query.
|
|
|
|
|
|
|
|
ename:VK_QUERY_RESULT_PARTIAL_BIT mustnot: be used if the pool's
|
|
|
|
pname:queryType is ename:VK_QUERY_TYPE_TIMESTAMP.
|
|
|
|
|
|
|
|
fname:vkCmdCopyQueryPoolResults is considered to be a transfer operation,
|
|
|
|
and its writes to buffer memory must: be synchronized using
|
|
|
|
ename:VK_PIPELINE_STAGE_TRANSFER_BIT and
|
|
|
|
ename:VK_ACCESS_TRANSFER_WRITE_BIT before using the results.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::../validity/protos/vkCmdCopyQueryPoolResults.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
|
|
|
slink:VkBuffer, slink:VkCommandBuffer, basetype:VkDeviceSize, slink:VkQueryPool, elink:VkQueryResultFlags
|
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#vkCmdCopyQueryPoolResults
|
|
|
|
|
|
|
|
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
|
|
|
|