From b5c860c835c15190328685aad96311ac6d31f9e5 Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Fri, 8 Jan 2016 11:40:27 -0700 Subject: [PATCH] loader: Add structures to support new init method These structures will be used to extend CreateInstance and CreateDevice to support layers. The loader will create a chain of these structures - one per layer - that tells the layer the Get*ProcAddr for the next lower part. --- include/vulkan/vk_layer.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/include/vulkan/vk_layer.h b/include/vulkan/vk_layer.h index aeb6ab9..6899182 100644 --- a/include/vulkan/vk_layer.h +++ b/include/vulkan/vk_layer.h @@ -221,5 +221,30 @@ typedef enum VkLayerDbgAction_ VK_DBG_LAYER_ACTION_DEBUG_OUTPUT = 0x8, } VkLayerDbgAction; +// ------------------------------------------------------------------------------------------------ +// CreateInstance and CreateDevice support structures +typedef struct VkLayerInstanceLink_ { + struct VkLayerInstanceLink_* pNext; + PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; +} VkLayerInstanceLink; + +typedef struct { + VkStructureType sType; // VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO + const void* pNext; + VkLayerInstanceLink* pLayerInfo; +} VkLayerInstanceCreateInfo; + +typedef struct VkLayerDeviceLink_ { + struct VkLayerDeviceLink_* pNext; + PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; + PFN_vkGetDeviceProcAddr pfnNextGetDeviceProcAddr; +} VkLayerDeviceLink; + +typedef struct { + VkStructureType sType; // VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO + const void* pNext; + VkLayerDeviceLink* pLayerInfo; +} VkLayerDeviceCreateInfo; + // ------------------------------------------------------------------------------------------------ // API functions