Function Prototype

vkBindImageMemory2

Bind device memory to image objects

To attach memory to image objects for one or more images at a time, call:

VkResult vkBindImageMemory2KHR(
    VkDevice device,
    uint32_t bindInfoCount,
    const VkBindImageMemoryInfo* pBindInfos);
  • device is the logical device that owns the images and memory.
  • bindInfoCount is the number of elements in pBindInfos.
  • pBindInfos is a pointer to an array of VkBindImageMemoryInfo structures, describing images and memory to bind.

On some implementations, it may be more efficient to batch memory bindings into a single command.

If the maintenance6 feature is enabled, this command must attempt to perform all of the memory binding operations described by pBindInfos, and must not early exit on the first failure.

If any of the memory binding operations described by pBindInfos fail, the VkResult returned by this command must be the return value of any one of the memory binding operations which did not return VK_SUCCESS.

If the vkBindImageMemory2 command failed, VkBindMemoryStatusKHR structures were not included in the pNext chains of each element of pBindInfos, and bindInfoCount was greater than one, then the images referenced by pBindInfos will be in an indeterminate state, and must not be used.

Applications should destroy these images.

Valid Usage

VUID-vkBindImageMemory2-pBindInfos-02858

If any VkBindImageMemoryInfo::image was created with VK_IMAGE_CREATE_DISJOINT_BIT then all planes of VkBindImageMemoryInfo::image must be bound individually in separate pBindInfos

VUID-vkBindImageMemory2-pBindInfos-04006

pBindInfos must not refer to the same image subresource more than once

Valid Usage (Implicit)

VUID-vkBindImageMemory2-pBindInfos-parameter

pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures

VUID-vkBindImageMemory2-bindInfoCount-arraylength

bindInfoCount must be greater than 0