Package org.lwjgl.vulkan
Class EXTPrivateData
java.lang.Object
org.lwjgl.vulkan.EXTPrivateData
This extension is a device extension which enables attaching arbitrary payloads to Vulkan objects. It introduces the idea of private data slots as a means of storing a 64-bit unsigned integer of application-defined data. Private data slots can be created or destroyed any time an associated device is available. Private data slots can be reserved at device creation time, and limiting use to the amount reserved will allow the extension to exhibit better performance characteristics.
Promotion to Vulkan 1.3
Vulkan APIs in this extension are included in core Vulkan 1.3, with the EXT suffix omitted. External interactions defined by this extension, such as SPIR-V token names, retain their original names. The original Vulkan API names are still available as aliases of the core functionality.
Examples
- In progress
- Name String
VK_EXT_private_data- Extension Type
- Device extension
- Registered Extension Number
- 296
- Revision
- 1
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2or Version 1.1- Deprecation State
- Promoted to Vulkan 1.3
- Contact
- Matthew Rusch mattruschnv
Other Extension Metadata
- Last Modified Date
- 2020-03-25
- IP Status
- No known IP claims.
- Contributors
- Matthew Rusch, NVIDIA
- Nuno Subtil, NVIDIA
- Piers Daniell, NVIDIA
- Jeff Bolz, NVIDIA
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe extension name.static final intThe extension specification version.static final intExtendsVkObjectType.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkCreatePrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pPrivateDataSlot) Unsafe version of:CreatePrivateDataSlotEXTstatic voidnvkDestroyPrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, long privateDataSlot, long pAllocator) Unsafe version of:DestroyPrivateDataSlotEXTstatic voidnvkGetPrivateDataEXT(org.lwjgl.vulkan.VkDevice device, int objectType, long objectHandle, long privateDataSlot, long pData) Unsafe version of:GetPrivateDataEXTstatic intvkCreatePrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, VkPrivateDataSlotCreateInfo pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pPrivateDataSlot) Array version of:CreatePrivateDataSlotEXTstatic intvkCreatePrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, VkPrivateDataSlotCreateInfo pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pPrivateDataSlot) static voidvkDestroyPrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, long privateDataSlot, @Nullable VkAllocationCallbacks pAllocator) static voidvkGetPrivateDataEXT(org.lwjgl.vulkan.VkDevice device, int objectType, long objectHandle, long privateDataSlot, long[] pData) Array version of:GetPrivateDataEXTstatic voidvkGetPrivateDataEXT(org.lwjgl.vulkan.VkDevice device, int objectType, long objectHandle, long privateDataSlot, LongBuffer pData) SeeGetPrivateData.static intvkSetPrivateDataEXT(org.lwjgl.vulkan.VkDevice device, int objectType, long objectHandle, long privateDataSlot, long data) SeeSetPrivateData.
-
Field Details
-
VK_EXT_PRIVATE_DATA_SPEC_VERSION
public static final int VK_EXT_PRIVATE_DATA_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_EXT_PRIVATE_DATA_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXTExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXTExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXTExtendsVkStructureType.Enum values:
- See Also:
-
VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT
public static final int VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXTExtendsVkObjectType.- See Also:
-
-
Method Details
-
nvkCreatePrivateDataSlotEXT
public static int nvkCreatePrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, long pCreateInfo, long pAllocator, long pPrivateDataSlot) Unsafe version of:CreatePrivateDataSlotEXT -
vkCreatePrivateDataSlotEXT
public static int vkCreatePrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, VkPrivateDataSlotCreateInfo pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, LongBuffer pPrivateDataSlot) - Parameters:
device- the logical device associated with the creation of the object(s) holding the private data slot.pCreateInfo- a pointer to aVkPrivateDataSlotCreateInfopAllocator- controls host memory allocation as described in the Memory Allocation chapter.pPrivateDataSlot- a pointer to aVkPrivateDataSlothandle in which the resulting private data slot is returned
-
nvkDestroyPrivateDataSlotEXT
public static void nvkDestroyPrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, long privateDataSlot, long pAllocator) Unsafe version of:DestroyPrivateDataSlotEXT -
vkDestroyPrivateDataSlotEXT
public static void vkDestroyPrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, long privateDataSlot, @Nullable VkAllocationCallbacks pAllocator) - Parameters:
device- the logical device associated with the creation of the object(s) holding the private data slot.privateDataSlot- the private data slot to destroy.pAllocator- controls host memory allocation as described in the Memory Allocation chapter.
-
vkSetPrivateDataEXT
public static int vkSetPrivateDataEXT(org.lwjgl.vulkan.VkDevice device, int objectType, long objectHandle, long privateDataSlot, long data) SeeSetPrivateData.- Parameters:
device- the device that created the object.objectType- aVkObjectTypespecifying the type of object to associate data with.objectHandle- a handle to the object to associate data with.privateDataSlot- a handle to aVkPrivateDataSlotspecifying location of private data storage.data- application-defined data to associate the object with. This data will be stored atprivateDataSlot.
-
nvkGetPrivateDataEXT
public static void nvkGetPrivateDataEXT(org.lwjgl.vulkan.VkDevice device, int objectType, long objectHandle, long privateDataSlot, long pData) Unsafe version of:GetPrivateDataEXT -
vkGetPrivateDataEXT
public static void vkGetPrivateDataEXT(org.lwjgl.vulkan.VkDevice device, int objectType, long objectHandle, long privateDataSlot, LongBuffer pData) SeeGetPrivateData.- Parameters:
device- the device that created the objectobjectType- aVkObjectTypespecifying the type of object data is associated with.objectHandle- a handle to the object data is associated with.privateDataSlot- a handle to aVkPrivateDataSlotspecifying location of private data pointer storage.pData- a pointer to specify where application-defined data is returned. 0 will be written in the absence of a previous call tovkSetPrivateDatausing the object specified byobjectHandle.
-
vkCreatePrivateDataSlotEXT
public static int vkCreatePrivateDataSlotEXT(org.lwjgl.vulkan.VkDevice device, VkPrivateDataSlotCreateInfo pCreateInfo, @Nullable VkAllocationCallbacks pAllocator, long[] pPrivateDataSlot) Array version of:CreatePrivateDataSlotEXT -
vkGetPrivateDataEXT
public static void vkGetPrivateDataEXT(org.lwjgl.vulkan.VkDevice device, int objectType, long objectHandle, long privateDataSlot, long[] pData) Array version of:GetPrivateDataEXT
-