From c5104f208dd40c53c47a77d84b4c5cd68065af26 Mon Sep 17 00:00:00 2001 From: Jon Ashburn Date: Wed, 6 May 2015 10:15:07 -0600 Subject: misc: Add vkGetInstanceProcAddr() entrypoint Adding this entrypoint as this has been discussed in khronos and is needed for the loader/layer/extension proposal. Caveats: 1) Have not updated layers or any tests/demos yet that will come later; 2) No one including loader is using this call yet; 3) Leaving exisitng vkGetProcAddr() as is for now; later once loader is using vkGetInstanceProcAddr call can switch vkGetProcAddr() to vkGetDeviceProcAddr() --- include/vkLayer.h | 1 + include/vulkan.h | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/vkLayer.h b/include/vkLayer.h index e95811b8..87a79e5d 100644 --- a/include/vkLayer.h +++ b/include/vkLayer.h @@ -26,6 +26,7 @@ typedef struct VkBaseLayerObject_ typedef struct VkLayerDispatchTable_ { PFN_vkGetProcAddr GetProcAddr; + PFN_vkGetInstanceProcAddr GetInstanceProcAddr; PFN_vkCreateInstance CreateInstance; PFN_vkDestroyInstance DestroyInstance; PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices; diff --git a/include/vulkan.h b/include/vulkan.h index 00ebbf51..ed222438 100644 --- a/include/vulkan.h +++ b/include/vulkan.h @@ -33,7 +33,7 @@ #include "vk_platform.h" // Vulkan API version supported by this file -#define VK_API_VERSION VK_MAKE_VERSION(0, 93, 0) +#define VK_API_VERSION VK_MAKE_VERSION(0, 93, 1) #ifdef __cplusplus extern "C" @@ -2136,6 +2136,7 @@ typedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCrea typedef VkResult (VKAPI *PFN_vkDestroyInstance)(VkInstance instance); typedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceInfo)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceInfoType infoType, size_t* pDataSize, void* pData); +typedef void * (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char * pName); typedef void * (VKAPI *PFN_vkGetProcAddr)(VkPhysicalDevice physicalDevice, const char * pName); typedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice); typedef VkResult (VKAPI *PFN_vkDestroyDevice)(VkDevice device); @@ -2271,10 +2272,13 @@ VkResult VKAPI vkGetPhysicalDeviceInfo( size_t* pDataSize, void* pData); +void * VKAPI vkGetInstanceProcAddr( + VkInstance instance, + const char* pName); + void * VKAPI vkGetProcAddr( VkPhysicalDevice physicalDevice, const char* pName); - // Device functions VkResult VKAPI vkCreateDevice( -- cgit v1.2.3