VK_NV_external_memory_sci_buf
{generated}/meta/{refprefix}VK_NV_external_memory_sci_buf.adoc
Other Extension Metadata
Last Modified Date
2022-04-12
Contributors
- Kai Zhang, NVIDIA
- Jeff Bolz, NVIDIA
- Jonathan McCaffrey, NVIDIA
- Daniel Koch, NVIDIA
Description
This extension enables an application to access external memory via
NvSciBufObj.
To import a NvSciBufObj to VkDeviceMemory, applications need to:
- Create an unreconciled
NvSciBufAttrListviaNvSciBufAttrListCreate() - Fill in the private attribute list via vkGetPhysicalDeviceSciBufAttributesNV()
- Fill in the public attribute list via
NvSciBufAttrListSetAttrs() - Reconcile the
NvSciBufAttrListviaNvSciBufAttrListReconcile() - Create a
NvSciBufObjviaNvSciBufObjAlloc() - Import the
NvSciBufObjto a VkDeviceMemory by chaining VkImportMemorySciBufInfoNV structure to the command vkAllocateMemory.
For details of the NvSciBuf APIs and data structures, see the
NvStreams Documentation.
Issues
1) What should we call this extension?
RESOLVED.
The external API is NvSciBuf, but the Vulkan convention is to append
the vendor suffix at the end of an identifier.
Using NvSciBufNV seems awkward, so we have chosen to use just the
SciBuf portion of the name in Vulkan commands and tokens.
Since this is for interacting with memory objects allocated from outside
Vulkan, we use "external_memory" in the name, similar to
VK_KHR_external_memory_fd.
To avoid an explosion of extensions, we include the capability to import and
export memory in one extension but include separate features in case
implementations only implement (or safety certify) a subset.
2) What changed in revision 2?
RESOLVED.
The VkPhysicalDeviceExternalSciBufFeaturesNV structure was renamed to
VkPhysicalDeviceExternalMemorySciBufFeaturesNV to follow naming
conventions (previous names retained as aliases), and drop const on
pNext pointer.
Version History
- Revision 1, 2022-04-12 (Kai Zhang, Daniel Koch)
- Internal revisions
- Revision 2, 2023-01-03 (Daniel Koch)
- fix the feature structure to address naming convention and cts autogeneration issues