diff options
| author | Tobin Ehlis <tobin@lunarg.com> | 2015-09-22 10:11:37 -0600 |
|---|---|---|
| committer | Tobin Ehlis <tobin@lunarg.com> | 2015-09-24 08:52:00 -0600 |
| commit | c19057b19af19dae79074851df98b6d0b811b741 (patch) | |
| tree | 2d51ab1ba7170db27b73278b28a779f686314cf5 | |
| parent | 598da3411d86e8afb6f65c6f4d98f14c0c384248 (diff) | |
| download | usermoji-c19057b19af19dae79074851df98b6d0b811b741.tar.xz | |
layers: Added Image layer to validation test suite with new test for bad ImageView
| -rw-r--r-- | layers/image.cpp | 7 | ||||
| -rw-r--r-- | layers/image.h | 8 |
2 files changed, 13 insertions, 2 deletions
diff --git a/layers/image.cpp b/layers/image.cpp index 10fc36c9..d822b2eb 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<uint64_t, unique_ptr<VkImageCreateInfo>> imageMap; + unordered_map<uint64_t, unique_ptr<IMAGE_STATE>> imageMap; } layer_data; static unordered_map<void*, layer_data*> 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<VkImageCreateInfo>(new VkImageCreateInfo(*pCreateInfo)); + device_data->imageMap[pImage->handle] = unique_ptr<IMAGE_STATE>(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 631d1c64..ce4f77b3 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 |
