Safe Haskell | None |
---|---|
Language | Haskell2010 |
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
- Extension and Version Dependencies
- Requires Vulkan 1.0
- 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
The 'VK_EXT_private_data' 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 Enums
New Bitmasks
New Enum Constants
EXT_PRIVATE_DATA_SPEC_VERSION
Extending
ObjectType
:Extending
StructureType
:
Examples
- In progress
Version History
Revision 1, 2020-01-15 (Matthew Rusch)
- Initial draft
See Also
DevicePrivateDataCreateInfoEXT
,
PhysicalDevicePrivateDataFeaturesEXT
,
PrivateDataSlotCreateFlagBitsEXT
, PrivateDataSlotCreateFlagsEXT
,
PrivateDataSlotCreateInfoEXT
,
PrivateDataSlotEXT
,
createPrivateDataSlotEXT
, destroyPrivateDataSlotEXT
,
getPrivateDataEXT
, setPrivateDataEXT
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.
Synopsis
- createPrivateDataSlotEXT :: forall io. MonadIO io => Device -> PrivateDataSlotCreateInfoEXT -> ("allocator" ::: Maybe AllocationCallbacks) -> io PrivateDataSlotEXT
- withPrivateDataSlotEXT :: forall io r. MonadIO io => Device -> PrivateDataSlotCreateInfoEXT -> Maybe AllocationCallbacks -> (io PrivateDataSlotEXT -> (PrivateDataSlotEXT -> io ()) -> r) -> r
- destroyPrivateDataSlotEXT :: forall io. MonadIO io => Device -> PrivateDataSlotEXT -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- setPrivateDataEXT :: forall io. MonadIO io => Device -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> io ()
- getPrivateDataEXT :: forall io. MonadIO io => Device -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> io ("data" ::: Word64)
- data DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfoEXT {}
- data PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfoEXT {}
- data PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeaturesEXT {
- privateData :: Bool
- type PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlagBitsEXT
- newtype PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBitsEXT Flags
- type EXT_PRIVATE_DATA_SPEC_VERSION = 1
- pattern EXT_PRIVATE_DATA_SPEC_VERSION :: forall a. Integral a => a
- type EXT_PRIVATE_DATA_EXTENSION_NAME = "VK_EXT_private_data"
- pattern EXT_PRIVATE_DATA_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- newtype PrivateDataSlotEXT = PrivateDataSlotEXT Word64
Documentation
createPrivateDataSlotEXT Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PrivateDataSlotCreateInfoEXT |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io PrivateDataSlotEXT |
vkCreatePrivateDataSlotEXT - Create a slot for private data storage
Valid Usage
- The privateData feature must be enabled
Valid Usage (Implicit)
-
device
must be a validDevice
handle
-
pCreateInfo
must be a valid pointer to a validPrivateDataSlotCreateInfoEXT
structure - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure -
pPrivateDataSlot
must be a valid pointer to aPrivateDataSlotEXT
handle
Return Codes
See Also
AllocationCallbacks
,
Device
, PrivateDataSlotCreateInfoEXT
,
PrivateDataSlotEXT
withPrivateDataSlotEXT :: forall io r. MonadIO io => Device -> PrivateDataSlotCreateInfoEXT -> Maybe AllocationCallbacks -> (io PrivateDataSlotEXT -> (PrivateDataSlotEXT -> io ()) -> r) -> r Source #
A convenience wrapper to make a compatible pair of calls to
createPrivateDataSlotEXT
and destroyPrivateDataSlotEXT
To ensure that destroyPrivateDataSlotEXT
is always called: pass
bracket
(or the allocate function from your
favourite resource management library) as the last argument.
To just extract the pair pass (,)
as the last argument.
destroyPrivateDataSlotEXT Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PrivateDataSlotEXT |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io () |
vkDestroyPrivateDataSlotEXT - Destroy a private data slot
Valid Usage
- If
AllocationCallbacks
were provided whenprivateDataSlot
was created, a compatible set of callbacks must be provided here
- If no
AllocationCallbacks
were provided whenprivateDataSlot
was created,pAllocator
must beNULL
Valid Usage (Implicit)
-
device
must be a validDevice
handle
- If
privateDataSlot
is notNULL_HANDLE
,privateDataSlot
must be a validPrivateDataSlotEXT
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure - If
privateDataSlot
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
privateDataSlot
must be externally synchronized
See Also
:: forall io. MonadIO io | |
=> Device |
|
-> ObjectType |
|
-> ("objectHandle" ::: Word64) |
|
-> PrivateDataSlotEXT |
|
-> ("data" ::: Word64) |
|
-> io () |
vkSetPrivateDataEXT - Associate data with a Vulkan object
Return Codes
See Also
:: forall io. MonadIO io | |
=> Device |
|
-> ObjectType |
|
-> ("objectHandle" ::: Word64) |
|
-> PrivateDataSlotEXT |
|
-> io ("data" ::: Word64) |
vkGetPrivateDataEXT - Retrieve data associated with a Vulkan object
Description
Note
Due to platform details on Android, implementations might not be able to
reliably return 0
from calls to getPrivateDataEXT
for
SwapchainKHR
objects on which
setPrivateDataEXT
has not previously been called. This erratum is
exclusive to the Android platform and objects of type
SwapchainKHR
.
Valid Usage (Implicit)
See Also
data DevicePrivateDataCreateInfoEXT Source #
VkDevicePrivateDataCreateInfoEXT - Reserve private data slots
Valid Usage (Implicit)
See Also
DevicePrivateDataCreateInfoEXT | |
|
Instances
data PrivateDataSlotCreateInfoEXT Source #
VkPrivateDataSlotCreateInfoEXT - Structure specifying the parameters of private data slot construction
Valid Usage (Implicit)
See Also
PrivateDataSlotCreateFlagsEXT
,
StructureType
,
createPrivateDataSlotEXT
PrivateDataSlotCreateInfoEXT | |
|
Instances
data PhysicalDevicePrivateDataFeaturesEXT Source #
VkPhysicalDevicePrivateDataFeaturesEXT - Structure specifying physical device support
Members
The members of the PhysicalDevicePrivateDataFeaturesEXT
structure
describe the following features:
Description
If the PhysicalDevicePrivateDataFeaturesEXT
structure is included in
the pNext
chain of
PhysicalDeviceFeatures2
,
it is filled with values indicating whether the feature is supported.
PhysicalDevicePrivateDataFeaturesEXT
can also be used in the pNext
chain of DeviceCreateInfo
to enable the features.
Valid Usage (Implicit)
See Also
PhysicalDevicePrivateDataFeaturesEXT | |
|
Instances
newtype PrivateDataSlotCreateFlagBitsEXT Source #
VkPrivateDataSlotCreateFlagBitsEXT - Bitmask specifying additional parameters for private data slot creation
See Also
Instances
type EXT_PRIVATE_DATA_SPEC_VERSION = 1 Source #
pattern EXT_PRIVATE_DATA_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_PRIVATE_DATA_EXTENSION_NAME = "VK_EXT_private_data" Source #
pattern EXT_PRIVATE_DATA_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
newtype PrivateDataSlotEXT Source #
VkPrivateDataSlotEXT - Opaque handle to a private data slot object
See Also
createPrivateDataSlotEXT
,
destroyPrivateDataSlotEXT
,
getPrivateDataEXT
,
setPrivateDataEXT