• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2020-2024 The Khronos Group Inc.
2//
3// SPDX-License-Identifier: CC-BY-4.0
4
5include::{generated}/meta/{refprefix}VK_EXT_private_data.adoc[]
6
7=== Other Extension Metadata
8
9*Last Modified Date*::
10    2020-03-25
11*IP Status*::
12    No known IP claims.
13*Contributors*::
14  - Matthew Rusch, NVIDIA
15  - Nuno Subtil, NVIDIA
16  - Piers Daniell, NVIDIA
17  - Jeff Bolz, NVIDIA
18
19=== Description
20
21This extension is a device extension which enables attaching arbitrary
22payloads to Vulkan objects.
23It introduces the idea of private data slots as a means of storing a 64-bit
24unsigned integer of application defined data.
25Private data slots can be created or destroyed any time an associated device
26is available.
27Private data slots can be reserved at device creation time, and limiting use
28to the amount reserved will allow the extension to exhibit better
29performance characteristics.
30
31include::{generated}/interfaces/VK_EXT_private_data.adoc[]
32
33=== Promotion to Vulkan 1.3
34
35Functionality in this extension is included in core Vulkan 1.3, with the EXT
36suffix omitted.
37The original type, enum and command names are still available as aliases of
38the core functionality.
39
40=== Examples
41
42  * In progress
43
44=== Issues
45
46(1) If I have to create a slink:VkPrivateDataSlot to store and retrieve data
47on an object, how does this extension help me? Will I not need to store the
48slink:VkPrivateDataSlot mapping with each object, and if I am doing that, I
49might as well just store the original data!
50--
51**RESOLVED:** The slink:VkPrivateDataSlot can be thought of as an opaque
52index into storage that is reserved in each object.
53That is, you can use the same slink:VkPrivateDataSlot with each object for a
54specific piece of information.
55For example, if a layer wishes to track per-object information, the layer
56only needs to allocate one slink:VkPrivateDataSlot per device and it can use
57that private data slot for all of the device's child objects.
58This allows multiple layers to store private data without conflicting with
59each other's and/or the application's private data.
60--
61
62(2) What if I need to store more than 64-bits of information per object?
63--
64**RESOLVED:** The data that you store per object could be a pointer to
65another object or structure of your own allocation.
66--
67
68=== Version History
69
70  * Revision 1, 2020-01-15 (Matthew Rusch)
71  ** Initial draft
72