From 1c8dfd9a2a5cd5a81f8e4b758d699c19ff390cff Mon Sep 17 00:00:00 2001 From: Jon Ashburn Date: Mon, 15 Jun 2015 12:21:02 -0600 Subject: layers: Add GetPhysicalDeviceExtInfo to DrawState Allows DrawState to be enabled in layers_validation_test --- layers/draw_state.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp index 42dd96fb..282c2385 100644 --- a/layers/draw_state.cpp +++ b/layers/draw_state.cpp @@ -1581,6 +1581,45 @@ static const VkExtensionProperties dsExts[DRAW_STATE_LAYER_EXT_ARRAY_SIZE] = { }; //TODO add DEBUG_MARKER to device extension list +VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionInfo( + VkPhysicalDevice physical_device, + 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 = DRAW_STATE_LAYER_EXT_ARRAY_SIZE; + break; + case VK_EXTENSION_INFO_TYPE_PROPERTIES: + *pDataSize = sizeof(VkExtensionProperties); + if (pData == NULL) { + return VK_SUCCESS; + } + if (extensionIndex >= DRAW_STATE_LAYER_EXT_ARRAY_SIZE) { + return VK_ERROR_INVALID_VALUE; + } + memcpy((VkExtensionProperties *) pData, &dsExts[extensionIndex], sizeof(VkExtensionProperties)); + break; + default: + return VK_ERROR_INVALID_VALUE; + } + + return VK_SUCCESS; +} + VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo( VkExtensionInfoType infoType, uint32_t extensionIndex, -- cgit v1.2.3