Registered Extension Number

375

Revision

2

Ratification Status

Not ratified

Extension and Version Dependencies

Contact

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:

For details of the NvSciBuf APIs and data structures, see the NvStreams Documentation.

New Commands

New Structures

New Enum Constants

  • VK_NV_EXTERNAL_MEMORY_SCI_BUF_EXTENSION_NAME

  • VK_NV_EXTERNAL_MEMORY_SCI_BUF_SPEC_VERSION

  • Extending VkExternalMemoryHandleTypeFlagBits:

    • VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV

  • Extending VkStructureType:

    • VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV

    • VK_STRUCTURE_TYPE_IMPORT_MEMORY_SCI_BUF_INFO_NV

    • VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV

    • VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV

    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV

    • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_BUF_FEATURES_NV

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 struct 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

See Also

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0