Modulevulkan-3.27GHC2021
Vulkan.Extensions.VK_EXT_private_data
Name
VK_EXT_private_data - device extension
VK_EXT_private_data
- Name String
VK_EXT_private_data
- Extension Type
Device extension
- Registered Extension Number
296
- Revision
1
- Ratification Status
Not ratified
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
or
- Deprecation State
Promoted to Vulkan 1.3
- Contact
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
Description
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.
New Object Types
New Commands
New Structures
Extending DeviceCreateInfo:
Extending PhysicalDeviceFeatures2, DeviceCreateInfo:
New Bitmasks
New Enum Constants
Extending ObjectType:
Extending StructureType:
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
Issues
If I have to create a PrivateDataSlot to store and retrieve data on an object, how does this extension help me? Will I not need to store the PrivateDataSlot mapping with each object, and if I am doing that, I might as well just store the original data!
The PrivateDataSlot can be thought of as an opaque index into storage that is reserved in each object. That is, you can use the same PrivateDataSlot with each object for a specific piece of information. For example, if a layer wishes to track per-object information, the layer only needs to allocate one PrivateDataSlot per device and it can use that private data slot for all of the device’s child objects. This allows multiple layers to store private data without conflicting with each other’s and/or the application’s private data.
2) What if I need to store more than 64-bits of information per object?
The data that you store per object could be a pointer to another object or structure of your own allocation.
Version History
Revision 1, 2020-01-15 (Matthew Rusch)
Initial draft
See Also
No cross-references are available
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.
- 7 types
- 4 values
- Packagevulkan-3.27
- Exports17
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceVK_EXT_private_data.hs