From c19057b19af19dae79074851df98b6d0b811b741 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Tue, 22 Sep 2015 10:11:37 -0600 Subject: [PATCH] layers: Added Image layer to validation test suite with new test for bad ImageView --- layers/image.cpp | 7 +++++-- layers/image.h | 8 ++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/layers/image.cpp b/layers/image.cpp index 10fc36c..d822b2e 100644 --- a/layers/image.cpp +++ b/layers/image.cpp @@ -50,7 +50,7 @@ typedef struct _layer_data { debug_report_data *report_data; VkDbgMsgCallback logging_callback; VkPhysicalDevice physicalDevice; - unordered_map> imageMap; + unordered_map> imageMap; } layer_data; static unordered_map layer_data_map; @@ -171,6 +171,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDevice(VkPhysicalDevice physicalDevice, c layer_data *device_data = get_my_data_ptr(get_dispatch_key(*pDevice), layer_data_map); device_data->report_data = layer_debug_report_create_device(instance_data->report_data, *pDevice); device_data->physicalDevice = physicalDevice; + device_data->imageMap.reserve(10); } return result; @@ -285,7 +286,7 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateImage(VkDevice device, const VkImageCreat VkResult result = get_dispatch_table(image_device_table_map, device)->CreateImage(device, pCreateInfo, pImage); if(result == VK_SUCCESS) { - device_data->imageMap[pImage->handle] = unique_ptr(new VkImageCreateInfo(*pCreateInfo)); + device_data->imageMap[pImage->handle] = unique_ptr(new IMAGE_STATE(pCreateInfo)); } return result; } @@ -433,6 +434,8 @@ VK_LAYER_EXPORT PFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(VkDevice device, co return (PFN_vkVoidFunction) vkDestroyDevice; if (!strcmp(funcName, "vkCreateImage")) return (PFN_vkVoidFunction) vkCreateImage; + if (!strcmp(funcName, "vkCreateImageView")) + return (PFN_vkVoidFunction) vkCreateImageView; if (!strcmp(funcName, "vkCreateRenderPass")) return (PFN_vkVoidFunction) vkCreateRenderPass; diff --git a/layers/image.h b/layers/image.h index 631d1c6..ce4f77b 100644 --- a/layers/image.h +++ b/layers/image.h @@ -37,4 +37,12 @@ typedef enum _IMAGE_ERROR IMAGE_VIEW_CREATE_ERROR, // Error occurred trying to create Image View } IMAGE_ERROR; +typedef struct _IMAGE_STATE +{ + uint32_t mipLevels; + uint32_t arraySize; + _IMAGE_STATE():mipLevels(0), arraySize(0) {}; + _IMAGE_STATE(const VkImageCreateInfo* pCreateInfo):mipLevels(pCreateInfo->mipLevels), arraySize(pCreateInfo->arraySize) {}; +} IMAGE_STATE; + #endif // IMAGE_H -- 2.7.4