aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorJon Ashburn <[email protected]>2016-03-29 11:16:01 -0600
committerMark Lobodzinski <[email protected]>2018-05-04 09:24:23 -0600
commitc51485f24a66f83f299615cf81f2f7d7c68210ea (patch)
treedef00253fcfc74f16c69cdea3b50da22cb558ce4 /include
parent4e58a0e4d8b43ba6009bc076b6a83b57a0e98739 (diff)
downloadVulkan-Headers-c51485f24a66f83f299615cf81f2f7d7c68210ea.tar.gz
Vulkan-Headers-c51485f24a66f83f299615cf81f2f7d7c68210ea.zip
loader: Add instance callback to set dispatchable objects
Change-Id: I73b8b6edfee491c53216b730c99a7ea34ade3b4e
Diffstat (limited to 'include')
-rw-r--r--include/vulkan/vk_layer.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/include/vulkan/vk_layer.h b/include/vulkan/vk_layer.h
index 2a45800..8538eec 100644
--- a/include/vulkan/vk_layer.h
+++ b/include/vulkan/vk_layer.h
@@ -261,9 +261,15 @@ typedef enum VkLayerDbgAction_ {
// ------------------------------------------------------------------------------------------------
// CreateInstance and CreateDevice support structures
+/* Sub type of structure for instance and device loader ext of CreateInfo.
+ * When sType == VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO
+ * or sType == VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO
+ * then VkLayerFunction indicates struct type pointed to by pNext
+ */
typedef enum VkLayerFunction_ {
VK_LAYER_LINK_INFO = 0,
- VK_LAYER_DEVICE_INFO = 1
+ VK_LAYER_DEVICE_INFO = 1,
+ VK_LOADER_DISPATCH_CALLBACK = 2
} VkLayerFunction;
typedef struct VkLayerInstanceLink_ {
@@ -283,12 +289,16 @@ typedef struct VkLayerDeviceInfo_ {
PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr;
} VkLayerDeviceInfo;
+typedef VkResult (VKAPI_PTR *PFN_vkSetInstanceLoaderData)(VkInstance instance,
+ void *object);
+
typedef struct {
VkStructureType sType; // VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO
const void *pNext;
VkLayerFunction function;
union {
VkLayerInstanceLink *pLayerInfo;
+ PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData;
} u;
} VkLayerInstanceCreateInfo;