Importing memory from a host pointer shares ownership of the memory between the host and the Vulkan implementation. The application can continue to access the memory through the host pointer but it is the application’s responsibility to synchronize device and non-device access to the payload as defined in Host Access to Device Memory Objects.
Applications can import the same payload into multiple instances of Vulkan and multiple times into a given Vulkan instance. However, implementations may fail to import the same payload multiple times into a given physical device due to platform constraints.
Importing memory from a particular host pointer may not be possible due to additional platform-specific restrictions beyond the scope of this specification in which case the implementation must fail the memory import operation with the error code ERROR_INVALID_EXTERNAL_HANDLE_KHR.
Whether device memory objects imported from a host pointer hold a reference to their payload is undefined. As such, the application must ensure that the imported memory range remains valid and accessible for the lifetime of the imported memory object.
handleType is not 0, it must be supported for import, as reported in VkExternalMemoryPropertieshandleType is not 0, it must be EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXTpHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignmenthandleType is EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained tohandleType is EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host mapped foreign memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained tosType must be STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXThandleType must be a valid VkExternalMemoryHandleTypeFlagBits valuepHostPointer must be a pointer value
struct VkImportMemoryHostPointerInfoEXT {
VkStructureType sType;
void const * pNext;
VkExternalMemoryHandleTypeFlagBits handleType;
void * pHostPointer;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkImportMemoryHostPointerInfoEXT.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | HANDLETYPE
The struct member offsets. |
| public static final int | PHOSTPOINTER
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | STYPE
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkImportMemoryHostPointerInfoEXT(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkImportMemoryHostPointerInfoEXT | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkImportMemoryHostPointerInfoEXT. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT. | |
| public static VkImportMemoryHostPointerInfoEXT. | |
| protected VkImportMemoryHostPointerInfoEXT | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT | create(long address)
Returns a new |
| public static VkImportMemoryHostPointerInfoEXT. | create(int
the buffer capacity capacity)Returns a new |
| public static VkImportMemoryHostPointerInfoEXT. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT. | |
| public int | |
| public VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkImportMemoryHostPointerInfoEXT | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkImportMemoryHostPointerInfoEXT. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT | |
| public static VkImportMemoryHostPointerInfoEXT. | |
| public static VkImportMemoryHostPointerInfoEXT. | |
| public static int | |
| public static void | |
| public static long | |
| public static void | |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public long | |
| public VkImportMemoryHostPointerInfoEXT | |
| public long | |
| public VkImportMemoryHostPointerInfoEXT | |
| public VkImportMemoryHostPointerInfoEXT | set(int sType, long pNext, int handleType, long pHostPointer)
Initializes this struct with the specified values. |
| public VkImportMemoryHostPointerInfoEXT | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public int | |
| public VkImportMemoryHostPointerInfoEXT | |
| public VkImportMemoryHostPointerInfoEXT | sType$Default()
Sets the |
| public static void |
| ALIGNOF | back to summary |
|---|---|
| public static final int ALIGNOF The struct alignment in bytes. | |
| HANDLETYPE | back to summary |
|---|---|
| public static final int HANDLETYPE The struct member offsets. | |
| PHOSTPOINTER | back to summary |
|---|---|
| public static final int PHOSTPOINTER The struct member offsets. | |
| PNEXT | back to summary |
|---|---|
| public static final int PNEXT The struct member offsets. | |
| SIZEOF | back to summary |
|---|---|
| public static final int SIZEOF The struct size in bytes. | |
| STYPE | back to summary |
|---|---|
| public static final int STYPE The struct member offsets. | |
| VkImportMemoryHostPointerInfoEXT | back to summary |
|---|---|
| protected VkImportMemoryHostPointerInfoEXT(long address, ByteBuffer container) | |
| VkImportMemoryHostPointerInfoEXT | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT(ByteBuffer container) Creates a The created instance holds a strong reference to the container object. | |
| calloc | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT calloc() Returns a new | |
| calloc | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT calloc(MemoryStack stack) Returns a new
| |
| calloc | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Returns a new
| |
| callocStack | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT callocStack()
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT callocStack(MemoryStack stack)
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| callocStack | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| create | back to summary |
|---|---|
| protected VkImportMemoryHostPointerInfoEXT create(long address, ByteBuffer container) Implements abstract org. Doc from org. Similar to Effectively, every
| |
| create | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT create() Returns a new | |
| create | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT create(long address) Returns a new | |
| create | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Returns a new
| |
| create | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Create a
| |
| createSafe | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT createSafe(long address) Like
| |
| createSafe | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Like
| |
| handleType | back to summary |
|---|---|
| public int handleType() a
| |
| handleType | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT handleType(int value) Sets the specified value to the | |
| malloc | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT malloc() Returns a new | |
| malloc | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT malloc(MemoryStack stack) Returns a new
| |
| malloc | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Returns a new
| |
| mallocStack | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT mallocStack()
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT mallocStack(MemoryStack stack)
Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| mallocStack | back to summary |
|---|---|
| public static VkImportMemoryHostPointerInfoEXT. Deprecated
Deprecated for removal in 3.4.0. Use
| |
| nhandleType | back to summary |
|---|---|
| public static int nhandleType(long struct) Unsafe version of | |
| nhandleType | back to summary |
|---|---|
| public static void nhandleType(long struct, int value) Unsafe version of | |
| npHostPointer | back to summary |
|---|---|
| public static long npHostPointer(long struct) Unsafe version of | |
| npHostPointer | back to summary |
|---|---|
| public static void npHostPointer(long struct, long value) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static long npNext(long struct) Unsafe version of | |
| npNext | back to summary |
|---|---|
| public static void npNext(long struct, long value) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static int nsType(long struct) Unsafe version of | |
| nsType | back to summary |
|---|---|
| public static void nsType(long struct, int value) Unsafe version of | |
| pHostPointer | back to summary |
|---|---|
| public long pHostPointer() the host pointer to import from.
| |
| pHostPointer | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT pHostPointer(long value) Sets the specified value to the | |
| pNext | back to summary |
|---|---|
| public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT pNext(long value) Sets the specified value to the | |
| set | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT set(int sType, long pNext, int handleType, long pHostPointer) Initializes this struct with the specified values. | |
| set | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT set(VkImportMemoryHostPointerInfoEXT src) Copies the specified struct data to this struct.
| |
| sizeof | back to summary |
|---|---|
| public int sizeof() Implements abstract org. Doc from org. Returns
| |
| sType | back to summary |
|---|---|
| public int sType() a
| |
| sType | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT sType(int value) Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT sType$Default() Sets the | |
| validate | back to summary |
|---|---|
| public static void validate(long struct) Validates pointer members that should not be
| |
VkImportMemoryHostPointerInfoEXT structs.
| Modifier and Type | Field and Description |
|---|---|
| private static final VkImportMemoryHostPointerInfoEXT |
| Access | Constructor and Description |
|---|---|
| public | Buffer(ByteBuffer container)
Creates a new |
| public | |
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| protected VkImportMemoryHostPointerInfoEXT | |
| public int | |
| public VkImportMemoryHostPointerInfoEXT. | handleType(int value)
Sets the specified value to the |
| public long | |
| public VkImportMemoryHostPointerInfoEXT. | pHostPointer(long value)
Sets the specified value to the |
| public long | |
| public VkImportMemoryHostPointerInfoEXT. | |
| protected VkImportMemoryHostPointerInfoEXT. | |
| public int | |
| public VkImportMemoryHostPointerInfoEXT. | |
| public VkImportMemoryHostPointerInfoEXT. | sType$Default()
Sets the |
| ELEMENT_FACTORY | back to summary |
|---|---|
| private static final VkImportMemoryHostPointerInfoEXT ELEMENT_FACTORY | |
| Buffer | back to summary |
|---|---|
| public Buffer(ByteBuffer container) Creates a new Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values
will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided
by The created buffer instance holds a strong reference to the container object. | |
| Buffer | back to summary |
|---|---|
| public Buffer(long address, int cap) | |
| Buffer | back to summary |
|---|---|
| pack-priv Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap) | |
| getElementFactory | back to summary |
|---|---|
| protected VkImportMemoryHostPointerInfoEXT getElementFactory() Implements abstract org.
| |
| handleType | back to summary |
|---|---|
public int handleType()
| |
| handleType | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT. Sets the specified value to the | |
| pHostPointer | back to summary |
|---|---|
public long pHostPointer()
| |
| pHostPointer | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT. Sets the specified value to the | |
| pNext | back to summary |
|---|---|
public long pNext()
| |
| pNext | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT. Sets the specified value to the | |
| self | back to summary |
|---|---|
| protected VkImportMemoryHostPointerInfoEXT. Implements abstract org.
| |
| sType | back to summary |
|---|---|
public int sType()
| |
| sType | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT. Sets the specified value to the | |
| sType$Default | back to summary |
|---|---|
| public VkImportMemoryHostPointerInfoEXT. Sets the | |