vkCreateBuffer
To create buffers, call:
VkResult vkCreateBuffer(
VkDevice device,
const VkBufferCreateInfo* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkBuffer* pBuffer);
deviceis the logical device that creates the buffer object.pCreateInfois a pointer to a VkBufferCreateInfo structure containing parameters affecting creation of the buffer.pAllocatorcontrols host memory allocation as described in the Memory Allocation chapter.pBufferis a pointer to a VkBuffer handle in which the resulting buffer object is returned.
Valid Usage
VUID-vkCreateBuffer-device-09664
`device` :normative{type="must"} support at least one queue family with one of the
`VK_QUEUE_VIDEO_ENCODE_BIT_KHR`,
`VK_QUEUE_VIDEO_DECODE_BIT_KHR`,
VK_QUEUE_SPARSE_BINDING_BIT,
VK_QUEUE_TRANSFER_BIT, VK_QUEUE_COMPUTE_BIT, or
VK_QUEUE_GRAPHICS_BIT capabilities
VUID-vkCreateBuffer-flags-00911
If the flags member of pCreateInfo includes
VK_BUFFER_CREATE_SPARSE_BINDING_BIT,
and the extendedSparseAddressSpace feature is not enabled,
creating this VkBuffer must not cause the total required sparse
memory for all currently valid sparse resources on the device to exceed
VkPhysicalDeviceLimits::sparseAddressSpaceSize
VUID-vkCreateBuffer-flags-09383
If the flags member of pCreateInfo includes
VK_BUFFER_CREATE_SPARSE_BINDING_BIT, the
extendedSparseAddressSpace feature is enabled, and the
usage member of pCreateInfo contains bits not in
VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags,
creating this VkBuffer must not cause the total required sparse
memory for all currently valid sparse resources on the device, excluding
VkBuffer created with usage member of pCreateInfo
containing bits in
VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseBufferUsageFlags
and VkImage created with usage member of pCreateInfo
containing bits in
VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseImageUsageFlags,
to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize
VUID-vkCreateBuffer-flags-09384
If the flags member of pCreateInfo includes
VK_BUFFER_CREATE_SPARSE_BINDING_BIT and the
extendedSparseAddressSpace feature is enabled, creating this
VkBuffer must not cause the total required sparse memory for all
currently valid sparse resources on the device to exceed
VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV::extendedSparseAddressSpaceSize
VUID-vkCreateBuffer-pNext-06387
If using the VkBuffer for an import operation from a
VkBufferCollectionFUCHSIA where a
VkBufferCollectionBufferCreateInfoFUCHSIA has been chained to
pNext, pCreateInfo must match the
VkBufferConstraintsInfoFUCHSIA::createInfo used when setting
the constraints on the buffer collection with
vkSetBufferCollectionBufferConstraintsFUCHSIA
Valid Usage (Implicit)
VUID-vkCreateBuffer-device-parameter
device must be a valid VkDevice handle
VUID-vkCreateBuffer-pCreateInfo-parameter
pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure
VUID-vkCreateBuffer-pAllocator-parameter
If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure
VUID-vkCreateBuffer-pBuffer-parameter
pBuffer must be a valid pointer to a VkBuffer handle