HORIZON HASKELLDocslts/ghc-9.14.x45dd5372026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 45dd537 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Extensions.VK_AMD_buffer_marker

Name

VK_AMD_buffer_marker - device extension

VK_AMD_buffer_marker

Name String

VK_AMD_buffer_marker

Extension Type

Device extension

Registered Extension Number

180

Revision

1

Ratification Status

Not ratified

Extension and Version Dependencies

None

API Interactions
  • Interacts with VK_VERSION_1_3

  • Interacts with VK_KHR_synchronization2

Special Use
Contact

Other Extension Metadata

Last Modified Date

2018-01-26

IP Status

No known IP claims.

Contributors
  • Matthaeus G. Chajdas, AMD

  • Jaakko Konttinen, AMD

  • Daniel Rakos, AMD

Description

This extension adds a new operation to execute pipelined writes of small marker values into a Buffer object.

The primary purpose of these markers is to facilitate the development of debugging tools for tracking which pipelined command contributed to device loss.

New Commands

If Vulkan Version 1.3 or VK_KHR_synchronization2 is supported:

New Enum Constants

Examples

None.

Version History

  • Revision 1, 2018-01-26 (Jaakko Konttinen)

    • Initial revision

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

  • 2 types
  • 2 values
  • Packagevulkan-3.27
  • Exports6
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceVK_AMD_buffer_marker.hs
valuecmdWriteBufferMarkerAMD
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer into which the command will be recorded.

  3. -> PipelineStageFlagBits

    pipelineStage is a PipelineStageFlagBits value specifying the pipeline stage whose completion triggers the marker write.

  4. -> "dstBuffer" ::: Buffer

    dstBuffer is the buffer where the marker will be written to.

  5. -> "dstOffset" ::: DeviceSize

    dstOffset is the byte offset into the buffer where the marker will be written to.

  6. -> "marker" ::: Word32

    marker is the 32-bit value of the marker.

  7. -> io ()
#

vkCmdWriteBufferMarkerAMD - Execute a pipelined write of a marker value into a buffer

Description

When cmdWriteBufferMarkerAMD is submitted to a queue, it defines an execution dependency between prior operations and writing the marker value, as well as a memory dependency from earlier buffer marker write commands.

The first synchronization scope includes operations performed by operations that occur earlier in submission order in the pipeline stage identified by pipelineStage. It additionally includes other buffer marker write commands that occur earlier in submission order that specified either the same pipelineStage or a stage that is logically earlier.

The second synchronization scope includes only the buffer marker write.

The first access scope includes only accesses performed by other buffer marker write commands.

The second access scope is empty.

The access scope for buffer marker writes falls under the ACCESS_TRANSFER_WRITE_BIT flag, and is performed by either pipelineStage or PIPELINE_STAGE_TRANSFER_BIT. Synchronization commands should specify this access flag and both pipeline stages when defining dependencies with this command.

Similar to cmdWriteTimestamp, if an implementation is unable to write a marker at any specific pipeline stage, it may instead do so at any logically later stage.

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

  • pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Both

Outside

VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT VK_QUEUE_TRANSFER_BIT

Action

Conditional Rendering

vkCmdWriteBufferMarkerAMD is not affected by conditional rendering

See Also

VK_AMD_buffer_marker, Buffer, CommandBuffer, DeviceSize, PipelineStageFlagBits

valuecmdWriteBufferMarker2AMD
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer into which the command will be recorded.

  3. -> PipelineStageFlags2

    stage specifies the pipeline stage whose completion triggers the marker write.

  4. -> "dstBuffer" ::: Buffer

    dstBuffer is the buffer where the marker will be written.

  5. -> "dstOffset" ::: DeviceSize

    dstOffset is the byte offset into the buffer where the marker will be written.

  6. -> "marker" ::: Word32

    marker is the 32-bit value of the marker.

  7. -> io ()
#

vkCmdWriteBufferMarker2AMD - Execute a pipelined write of a marker value into a buffer

Description

When cmdWriteBufferMarker2AMD is submitted to a queue, it defines an execution dependency between prior operations and writing the marker value, as well as a memory dependency from earlier buffer marker write commands.

The first synchronization scope includes operations performed by operations that occur earlier in submission order in the pipeline stage identified by pipelineStage. It additionally includes other buffer marker write commands that occur earlier in submission order that specified either the same pipelineStage or a stage that is logically earlier.

The second synchronization scope includes only the buffer marker write.

The first access scope includes only accesses performed by other buffer marker write commands.

The second access scope is empty.

The access scope for buffer marker writes falls under the ACCESS_TRANSFER_WRITE_BIT flag, and is performed by either pipelineStage or PIPELINE_STAGE_TRANSFER_BIT. Synchronization commands should specify this access flag and both pipeline stages when defining dependencies with this command.

Similar to cmdWriteTimestamp2, if an implementation is unable to write a marker at any specific pipeline stage, it may instead do so at any logically later stage.

Implementations may only support a limited number of pipelined marker write operations in flight at a given time. Thus an excessive number of marker write operations may degrade command execution performance.

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Both

Outside

VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT VK_QUEUE_TRANSFER_BIT

Action

Conditional Rendering

vkCmdWriteBufferMarker2AMD is not affected by conditional rendering

See Also

VK_AMD_buffer_marker, VK_KHR_synchronization2, VK_VERSION_1_3, Buffer, CommandBuffer, DeviceSize, PipelineStageFlags2