From c1f104a68debb061464d7cac76aadfbfd05067f4 Mon Sep 17 00:00:00 2001 From: Jon Ashburn Date: Fri, 10 Apr 2015 14:33:07 -0600 Subject: vulkan: Add vkGetGlobalExtensionInfo entrypoint have loader use it to enumerate all extensions from layers and drivers. Non-gode_gen layers also updated to include vkGetGlobalExtensionInfo Includes verion info as part of GetExtensionSupport return data. TODO: vk-layer-generate needs work v2: do not check for non-existing ENABLE_WSI_X11 (olv) --- icd/nulldrv/VK_nulldrv.def | 1 + icd/nulldrv/nulldrv.c | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) (limited to 'icd') diff --git a/icd/nulldrv/VK_nulldrv.def b/icd/nulldrv/VK_nulldrv.def index 792fe6dd..a2d0167d 100644 --- a/icd/nulldrv/VK_nulldrv.def +++ b/icd/nulldrv/VK_nulldrv.def @@ -30,6 +30,7 @@ EXPORTS vkCreateInstance vkEnumerateGpus vkDestroyInstance + vkGetGlobalExtensionInfo xcbCreateWindow xcbDestroyWindow xcbGetMessage diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c index 4d72b511..5dc99de6 100644 --- a/icd/nulldrv/nulldrv.c +++ b/icd/nulldrv/nulldrv.c @@ -1353,8 +1353,41 @@ ICD_EXPORT VkResult VKAPI vkGetGpuInfo( return VK_SUCCESS; } +ICD_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo( + VkExtensionInfoType infoType, + uint32_t extensionIndex, + size_t* pDataSize, + void* pData) +{ + uint32_t *count; + + if (pDataSize == NULL) + return VK_ERROR_INVALID_POINTER; + + switch (infoType) { + case VK_EXTENSION_INFO_TYPE_COUNT: + *pDataSize = sizeof(uint32_t); + if (pData == NULL) + return VK_SUCCESS; + count = (uint32_t *) pData; + *count = 0; + break; + case VK_EXTENSION_INFO_TYPE_PROPERTIES: + *pDataSize = 0; + if (pData == NULL) + return VK_SUCCESS; + else + return VK_ERROR_INVALID_EXTENSION; + break; + default: + return VK_ERROR_INVALID_VALUE; + }; + + return VK_SUCCESS; +} + ICD_EXPORT VkResult VKAPI vkGetExtensionSupport( - VkPhysicalGpu gpu_, + VkPhysicalGpu gpu_, const char* pExtName) { NULLDRV_LOG_FUNC; -- cgit v1.2.3