VKBINDBUFFERMEMORY(3)

NAME
vkBindBufferMemory - Bind device memory to a buffer object

C SPECIFICATION

To attach memory to a buffer object, call:

    VkResult vkBindBufferMemory(
        VkDevice                                    device,
        VkBuffer                                    buffer,
        VkDeviceMemory                              memory,
        VkDeviceSize                                memoryOffset);

PARAMETERS

    • device is the logical device that owns the buffer and memory.

    • buffer is the buffer.

    • memory is a VkDeviceMemory object describing the device memory to attach.

    • memoryOffset is the start offset of the region of memory which is to be bound to the buffer. The number of bytes returned in the VkMemoryRequirements::size member in memory, starting from memoryOffset bytes, will be bound to the specified buffer.

DESCRIPTION
Valid Usage

    • buffer must not already be backed by a memory object

    • buffer must not have been created with any sparse memory binding flags

    • memoryOffset must be less than the size of memory

    • If buffer was created with the VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, memoryOffset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment

    • If buffer was created with the VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, memoryOffset must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment

    • If buffer was created with the VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, memoryOffset must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment

    • memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer

    • memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer

    • The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset
Valid Usage (Implicit)

    • device must be a valid VkDevice handle

    • buffer must be a valid VkBuffer handle

    • memory must be a valid VkDeviceMemory handle

    • buffer must have been created, allocated, or retrieved from device

    • memory must have been created, allocated, or retrieved from device
Host Synchronization

    • Host access to buffer must be externally synchronized
Return Codes

On success, this command returns

        • VK_SUCCESS

On failure, this command returns

        • VK_ERROR_OUT_OF_HOST_MEMORY

        • VK_ERROR_OUT_OF_DEVICE_MEMORY

SEE ALSO

VkBuffer, VkDevice, VkDeviceMemory, VkDeviceSize

DOCUMENT NOTES

For more information, see the Vulkan Specification at URL

https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkBindBufferMemory

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification,not directly.

COPYRIGHT

Copyright (c) 2014-2016 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.

AUTHOR

Khronos Group
    Author.