Function Prototype

vkCmdCopyMemoryToMicromapEXT

Copy device memory to a micromap
primary / secondary
outside
compute
action

To copy device memory to a micromap call:

void vkCmdCopyMemoryToMicromapEXT(
    VkCommandBuffer commandBuffer,
    const VkCopyMemoryToMicromapInfoEXT* pInfo);
  • commandBuffer is the command buffer into which the command will be recorded.
  • pInfo is a pointer to a VkCopyMicromapToMemoryInfoEXT structure defining the copy operation.

Accesses to pInfo→dst must be synchronized with the VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT

pipeline stage and an access type of VK_ACCESS_2_MICROMAP_READ_BIT_EXT. Accesses to the buffer indicated by pInfo→src.deviceAddress must be synchronized with the VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT pipeline stage and an access type of VK_ACCESS_TRANSFER_READ_BIT.

This command can accept micromaps produced by either vkCmdCopyMicromapToMemoryEXT or vkCopyMicromapToMemoryEXT.

Valid Usage

VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543

pInfo→src.deviceAddress must be a valid device address for a buffer bound to device memory

VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07544

pInfo→src.deviceAddress must be aligned to 256 bytes

VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07545

If the buffer pointed to by pInfo→src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object

VUID-vkCmdCopyMemoryToMicromapEXT-buffer-07546

The buffer used to create pInfo→dst must be bound to device memory

Valid Usage (Implicit)

VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-cmdpool

The VkCommandPool that commandBuffer was allocated from must support compute operations

VUID-vkCmdCopyMemoryToMicromapEXT-renderpass

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

VUID-vkCmdCopyMemoryToMicromapEXT-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 ::