C Specification

To export a NvSciBufObj from memory, add a VkExportMemorySciBufInfoNV structure to the pNext chain of the VkMemoryAllocateInfo structure. The VkExportMemorySciBufInfoNV structure is defined as:

// Provided by VK_NV_external_memory_sci_buf
typedef struct VkExportMemorySciBufInfoNV {
    VkStructureType     sType;
    const void*         pNext;
    NvSciBufAttrList    pAttributes;
} VkExportMemorySciBufInfoNV;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • pAttributes is an opaque NvSciBufAttrList describing the attributes of the NvSciBuf object that will be exported.

Description

If VkExportMemoryAllocateInfo is not present in the same pNext chain, this structure is ignored.

If the pNext chain of VkMemoryAllocateInfo includes a VkExportMemoryAllocateInfo structure with a handleType mask containing the VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV bit, but either VkExportMemorySciBufInfoNV is not included in the pNext chain, or it is included but pAttributes is set to NULL, vkAllocateMemory will return VK_ERROR_INITIALIZATION_FAILED.

The pAttributes parameter must be a reconciled NvSciBufAttrList. NvSciBufAttrList consists of both public and private attributes. It is the application’s responsibility to set the public attributes. To set the private attributes, the application must use the vkGetPhysicalDeviceSciBufAttributesNV command. The NvSciBufAttrList is then reconciled using the NvSciBuf APIs.

Valid Usage
  • VUID-VkExportMemorySciBufInfoNV-pAttributes-05100
    pAttributes must be a reconciled NvSciBufAttrList

Valid Usage (Implicit)
  • VUID-VkExportMemorySciBufInfoNV-sType-sType
    sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_SCI_BUF_INFO_NV

See Also

Document Notes

For more information, see the Vulkan Specification

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

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0