Function Prototype

vkCmdSetRenderingAttachmentLocationsKHR

Set color attachment location mappings for a command buffer
primary / secondary
inside
graphics
state

To set the fragment output location mappings during rendering, call:

void vkCmdSetRenderingAttachmentLocationsKHR(
    VkCommandBuffer commandBuffer,
    const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);

This command sets the attachment location mappings for subsequent drawing commands, and must match the mappings provided to the currently bound pipeline, if one is bound, which can be set by chaining VkRenderingAttachmentLocationInfoKHR to VkGraphicsPipelineCreateInfo.

Until this command is called, mappings in the command buffer state are treated as each color attachment specified in vkCmdBeginRendering having a location equal to its index in VkRenderingInfo::pColorAttachments. This state is reset whenever vkCmdBeginRendering is called.

Valid Usage

VUID-vkCmdSetRenderingAttachmentLocationsKHR-pLocationInfo-09510

pLocationInfo→colorAttachmentCount must be equal to the value of VkRenderingInfo::colorAttachmentCount used to begin the current render pass instance

VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-09511

The current render pass instance must have been started or resumed by vkCmdBeginRendering in this commandBuffer

Valid Usage (Implicit)

VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support graphics operations

VUID-vkCmdSetRenderingAttachmentLocationsKHR-renderpass

This command must only be called inside of a render pass instance

VUID-vkCmdSetRenderingAttachmentLocationsKHR-videocoding

This command must only be called outside of a video coding scope

Host Synchronization

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