VK_FUCHSIA_buffer_collection
Other Extension Metadata
Last Modified Date
2021-09-23
IP Status
No known IP claims.
Contributors
- Craig Stout, Google
- John Bauman, Google
- John Rosasco, Google
Description
A buffer collection is a collection of one or more buffers which were allocated together as a group and which all have the same properties. These properties describe the buffers' internal representation such as its dimensions and memory layout. This ensures that all of the buffers can be used interchangeably by tasks that require swapping among multiple buffers, such as double-buffered graphics rendering.
By sharing such a collection of buffers between components, communication about buffer lifecycle can be made much simpler and more efficient. For example, when a content producer finishes writing to a buffer, it can message the consumer of the buffer with the buffer index, rather than passing a handle to the shared memory.
On Fuchsia, the Sysmem service uses buffer collections as a core construct in its design. VK_FUCHSIA_buffer_collection is the Vulkan extension that allows Vulkan applications to interoperate with the Sysmem service on Fuchsia.
New Object Types
New Commands
- vkCreateBufferCollectionFUCHSIA
- vkDestroyBufferCollectionFUCHSIA
- vkGetBufferCollectionPropertiesFUCHSIA
- vkSetBufferCollectionBufferConstraintsFUCHSIA
- vkSetBufferCollectionImageConstraintsFUCHSIA
New Structures
- VkBufferCollectionConstraintsInfoFUCHSIA
- VkBufferCollectionCreateInfoFUCHSIA
- VkBufferCollectionPropertiesFUCHSIA
- VkBufferConstraintsInfoFUCHSIA
- VkImageConstraintsInfoFUCHSIA
- VkImageFormatConstraintsInfoFUCHSIA
- VkSysmemColorSpaceFUCHSIA
- Extending VkBufferCreateInfo:
- Extending VkImageCreateInfo:
- Extending VkMemoryAllocateInfo:
New Enums
New Bitmasks
New Enum Constants
VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME
VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION
- Extending VkObjectType:
VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA
- Extending VkStructureType:
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA
VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA
VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA
VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA
VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA
VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA
VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA
If VK_EXT_debug_report is supported:
- Extending VkDebugReportObjectTypeEXT:
VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT
Issues
1) When configuring a VkImageConstraintsInfoFUCHSIA structure for
constraint setting, should a NULL pFormatConstraints
parameter be
allowed ?
RESOLVED: No.
Specifying a NULL pFormatConstraints
results in logical complexity of
interpreting the relationship between the
VkImageCreateInfo::usage
settings of the elements of the
pImageCreateInfos
array and the implied or desired
VkFormatFeatureFlags.
The explicit requirement for pFormatConstraints
to be non-NULL
simplifies the implied logic of the implementation and expectations for the
Vulkan application.
Version History
- Revision 2, 2021-09-23 (John Rosasco)
- Review passes
- Revision 1, 2021-03-09 (John Rosasco)
- Initial revision