mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-01-23 12:49:27 +00:00
279452463a
* Update release number to 92. Public Issues: * Move and modify valid usage statements dealing with pname:aspectMask in flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and slink:VkClearAttachment, so they are in places where all necessary information is available (public issue 529). * Fix math markup in <<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>> (public pull request 840). * Fix misspellings (public pull request 845). Internal Issues: * Add installation instructions and a Makefile "`chunked`" target for chunked HTML generation (internal issue 1352). * Fix pipeline mesh diagram style; also fix a minor bug in the classic pipeline diagram where vertex/index buffers wrongly fed into the vertex shader (internal issue 1436). * Make asciidoctor ERROR output raise an error, and don't suppress executed command output from CI make invocation (internal issue 1454). * Minor typo fixes and clarifications for `VK_NV_raytracing`. * Cleanup extension-specific properties ** Remove duplicated documentation for pname:maxDiscardRectangles, pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they shouldn't be documented with the other members of slink:VkPhysicalDeviceLimits at all). ** Remove duplicate anchor for pname:maxVertexAttribDivisor ** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR *** Always document pname:sType/pname:pNext (was inconsistent before) *** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not as slink:VkPhysicalDeviceProperties2KHR) *** Always include Valid Usage statements last * Update Makefile 'checklinks' target and associated scripts, and fix markup problems identified by checkLinks.py, so that we can rely on the checklinks script as part of Gitlab CI.
71 lines
2.7 KiB
Plaintext
71 lines
2.7 KiB
Plaintext
[[copies-buffer-markers]]
|
|
== Buffer Markers
|
|
|
|
[open,refpage='vkCmdWriteBufferMarkerAMD',desc='Execute a pipelined write of a marker value into a buffer',type='protos']
|
|
--
|
|
|
|
To write a 32-bit marker value into a buffer as a pipelined operation, call:
|
|
|
|
include::../../api/protos/vkCmdWriteBufferMarkerAMD.txt[]
|
|
|
|
* pname:commandBuffer is the command buffer into which the command will be
|
|
recorded.
|
|
* pname:pipelineStage is one of the elink:VkPipelineStageFlagBits values,
|
|
specifying the pipeline stage whose completion triggers the marker
|
|
write.
|
|
* pname:dstBuffer is the buffer where the marker will be written to.
|
|
* pname:dstOffset is the byte offset into the buffer where the marker will
|
|
be written to.
|
|
* pname:marker is the 32-bit value of the marker.
|
|
|
|
The command will write the 32-bit marker value into the buffer only after
|
|
all preceding commands have finished executing up to at least the specified
|
|
pipeline stage.
|
|
This includes the completion of other preceding
|
|
fname:vkCmdWriteBufferMarkerAMD commands so long as their specified pipeline
|
|
stages occur either at the same time or earlier than this command's
|
|
specified pname:pipelineStage.
|
|
|
|
While consecutive buffer marker writes with the same pname:pipelineStage
|
|
parameter are implicitly complete in submission order, memory and execution
|
|
dependencies between buffer marker writes and other operations must still be
|
|
explicitly ordered using synchronization commands.
|
|
The access scope for buffer marker writes falls under the
|
|
ename:VK_ACCESS_TRANSFER_WRITE_BIT, and the pipeline stages for identifying
|
|
the synchronization scope must: include both pname:pipelineStage and
|
|
ename:VK_PIPELINE_STAGE_TRANSFER_BIT.
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
Similar to fname:vkCmdWriteTimestamp, if an implementation is unable to
|
|
write a marker at any specific pipeline stage, it may: instead do so at any
|
|
logically later stage.
|
|
====
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
Implementations may: only support a limited number of pipelined marker write
|
|
operations in flight at a given time, thus excessive number of marker write
|
|
operations may: degrade command execution performance.
|
|
====
|
|
|
|
.Valid Usage
|
|
****
|
|
* [[VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798]]
|
|
pname:dstOffset must: be less than or equal to the size of
|
|
pname:dstBuffer minus `4`.
|
|
* [[VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799]]
|
|
pname:dstBuffer must: have been created with
|
|
ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
|
* [[VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800]]
|
|
If pname:dstBuffer is non-sparse then it must: be bound completely and
|
|
contiguously to a single sname:VkDeviceMemory object
|
|
* [[VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801]]
|
|
pname:dstOffset must: be a multiple of `4`
|
|
****
|
|
|
|
include::../../validity/protos/vkCmdWriteBufferMarkerAMD.txt[]
|
|
--
|