C Specification

To export a NvSciBufObj representing the payload of a Vulkan device memory object, call:

// Provided by VK_NV_external_memory_sci_buf
VkResult vkGetMemorySciBufNV(
    VkDevice                                    device,
    const VkMemoryGetSciBufInfoNV*              pGetSciBufInfo,
    NvSciBufObj*                                pHandle);


  • device is the logical device that created the device memory being exported.

  • pGetSciBufInfo is a pointer to a VkMemoryGetSciBufInfoNV structure containing parameters of the export operation.

  • pHandle will return the NvSciBufObj representing the payload of the device memory object.


A call to vkGetMemorySciBufNV will not transfer the ownership of the NvSciBufObj handle to the application. The application will hold a reference to the NvSciBufObj, but it does not add a reference count to the NvSciBufObj, so the application must not release it.

Valid Usage (Implicit)
  • VUID-vkGetMemorySciBufNV-device-parameter
    device must be a valid VkDevice handle

  • VUID-vkGetMemorySciBufNV-pGetSciBufInfo-parameter
    pGetSciBufInfo must be a valid pointer to a valid VkMemoryGetSciBufInfoNV structure

  • VUID-vkGetMemorySciBufNV-pHandle-parameter
    pHandle must be a valid pointer to a NvSciBufObj value

Return Codes
On success, this command returns

On failure, this command returns

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