Jon Leech 279452463a Change log for November 12, 2018 Vulkan 1.1.92 spec update:
* 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.
2018-11-12 04:40:40 -08:00

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[]
--