Added function to driver, currently returning a count of 0 and VK_ERROR_INVALID_VALUE if an attempt it made to retrieve extension properties.
This change is slightly leading another so the first paramter is currently "VkPhysicalGpu" but should be migrated to "VkPhysicalDevice" when that change comes in.
return VK_SUCCESS;
}
-ICD_EXPORT VkResult VKAPI vkGetExtensionSupport(
- VkPhysicalGpu gpu_,
- const char* pExtName)
+VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
+ VkPhysicalGpu gpu,
+ VkExtensionInfoType infoType,
+ uint32_t extensionIndex,
+ size_t* pDataSize,
+ void* pData)
{
- NULLDRV_LOG_FUNC;
+ 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;
+ return VK_ERROR_INVALID_EXTENSION;
+ break;
+ default:
+ return VK_ERROR_INVALID_VALUE;
+ };
return VK_SUCCESS;
}
PFN_vkCreateDevice CreateDevice;
PFN_vkDestroyDevice DestroyDevice;
PFN_vkGetGlobalExtensionInfo GetGlobalExtensionInfo;
- PFN_vkGetExtensionSupport GetExtensionSupport;
+ PFN_vkGetPhysicalDeviceExtensionInfo GetPhysicalDeviceExtensionInfo;
PFN_vkEnumerateLayers EnumerateLayers;
PFN_vkGetDeviceQueue GetDeviceQueue;
PFN_vkQueueSubmit QueueSubmit;
* without having a GPU as the first parameter, the loader could not find the
* dispatch table.
*
- * This function is available when vkGetExtensionSupport says "VK_WSI_X11"
+ * This function is available when vkGetGlobalExtensionInfo says "VK_WSI_X11"
* is supported.
*/
VkResult VKAPI vkWsiX11AssociateConnection(
typedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalGpu gpu, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice);
typedef VkResult (VKAPI *PFN_vkDestroyDevice)(VkDevice device);
typedef VkResult (VKAPI *PFN_vkGetGlobalExtensionInfo)(VkExtensionInfoType infoType, uint32_t extensionIndex, size_t* pDataSize, void* pData);
-typedef VkResult (VKAPI *PFN_vkGetExtensionSupport)(VkPhysicalGpu gpu, const char* pExtName);
+typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceExtensionInfo)(VkPhysicalGpu gpu, VkExtensionInfoType infoType, uint32_t extensionIndex, size_t* pDataSize, void* pData);
typedef VkResult (VKAPI *PFN_vkEnumerateLayers)(VkPhysicalGpu gpu, size_t maxLayerCount, size_t maxStringSize, size_t* pOutLayerCount, char* const* pOutLayers, void* pReserved);
typedef VkResult (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueNodeIndex, uint32_t queueIndex, VkQueue* pQueue);
typedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t cmdBufferCount, const VkCmdBuffer* pCmdBuffers, VkFence fence);
size_t* pDataSize,
void* pData);
-VkResult VKAPI vkGetExtensionSupport(
- VkPhysicalGpu gpu,
- const char* pExtName);
+VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
+ VkPhysicalGpu gpu,
+ VkExtensionInfoType infoType,
+ uint32_t extensionIndex,
+ size_t* pDataSize,
+ void* pData);
// Layer discovery functions
Param("size_t*", "pDataSize"),
Param("void*", "pData")]),
+ Proto("VkResult", "GetPhysicalDeviceExtensionInfo",
+ [Param("VkPhysicalGpu", "gpu"),
+ Param("VkExtensionInfoType", "infoType"),
+ Param("uint32_t", "extensionIndex"),
+ Param("size_t*", "pDataSize"),
+ Param("void*", "pData")]),
+
Proto("VkResult", "EnumerateLayers",
[Param("VkPhysicalGpu", "gpu"),
Param("size_t", "maxLayerCount"),