From: Jon Ashburn Date: Tue, 29 Mar 2016 17:16:01 +0000 (-0600) Subject: loader: Add instance callback to set dispatchable objects X-Git-Tag: upstream/1.1.92~61 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c51485f24a66f83f299615cf81f2f7d7c68210ea;p=platform%2Fupstream%2FVulkan-Headers.git loader: Add instance callback to set dispatchable objects Change-Id: I73b8b6edfee491c53216b730c99a7ea34ade3b4e --- 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;