diff options
| author | Tobin Ehlis <tobine@google.com> | 2016-06-28 14:52:11 -0600 |
|---|---|---|
| committer | Tobin Ehlis <tobine@google.com> | 2016-07-06 19:45:31 -0600 |
| commit | 2285b018438edfc3bd6c005debf100a4c3a0ae16 (patch) | |
| tree | b820c953c14f8aab56469ce25e717cb41d8347db | |
| parent | 50432993709480e8539216bb545041f85d7fc174 (diff) | |
| download | usermoji-2285b018438edfc3bd6c005debf100a4c3a0ae16.tar.xz | |
layers: Add image to IMAGE_NODE
Store image inside the image ptr so that once node is looked-up
all relevent data is available when just node ptr is passed around.
| -rw-r--r-- | layers/core_validation.cpp | 4 | ||||
| -rw-r--r-- | layers/core_validation_types.h | 9 |
2 files changed, 7 insertions, 6 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index bd06c32f..c3abfa3e 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -5691,7 +5691,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateImage(VkDevice device, const VkImageCreateI IMAGE_LAYOUT_NODE image_node; image_node.layout = pCreateInfo->initialLayout; image_node.format = pCreateInfo->format; - dev_data->imageMap.insert(std::make_pair(*pImage, unique_ptr<IMAGE_NODE>(new IMAGE_NODE(pCreateInfo)))); + dev_data->imageMap.insert(std::make_pair(*pImage, unique_ptr<IMAGE_NODE>(new IMAGE_NODE(*pImage, pCreateInfo)))); ImageSubresourcePair subpair = {*pImage, false, VkImageSubresource()}; dev_data->imageSubresourceMap[*pImage].push_back(subpair); dev_data->imageLayoutMap[subpair] = image_node; @@ -10253,7 +10253,7 @@ GetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pCoun image_ci.extent.width = swapchain_node->createInfo.imageExtent.width; image_ci.extent.height = swapchain_node->createInfo.imageExtent.height; image_ci.sharingMode = swapchain_node->createInfo.imageSharingMode; - dev_data->imageMap[pSwapchainImages[i]] = unique_ptr<IMAGE_NODE>(new IMAGE_NODE(&image_ci)); + dev_data->imageMap[pSwapchainImages[i]] = unique_ptr<IMAGE_NODE>(new IMAGE_NODE(pSwapchainImages[i], &image_ci)); auto &image_node = dev_data->imageMap[pSwapchainImages[i]]; image_node->valid = false; image_node->mem = MEMTRACKER_SWAP_CHAIN_IMAGE_KEY; diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h index 2c59fd3d..5b33dfab 100644 --- a/layers/core_validation_types.h +++ b/layers/core_validation_types.h @@ -143,18 +143,19 @@ struct SAMPLER_NODE { class IMAGE_NODE : public BASE_NODE { public: using BASE_NODE::in_use; + VkImage image; VkImageCreateInfo createInfo; VkDeviceMemory mem; bool valid; // If this is a swapchain image backing memory track valid here as it doesn't have DEVICE_MEM_INFO VkDeviceSize memOffset; VkDeviceSize memSize; - IMAGE_NODE() : createInfo{}, mem(VK_NULL_HANDLE), valid(false), memOffset(0), memSize(0) { in_use.store(0); }; - IMAGE_NODE(const VkImageCreateInfo *pCreateInfo) - : createInfo(*pCreateInfo), mem(VK_NULL_HANDLE), valid(false), memOffset(0), memSize(0) { + IMAGE_NODE() : image(VK_NULL_HANDLE), createInfo{}, mem(VK_NULL_HANDLE), valid(false), memOffset(0), memSize(0) { in_use.store(0); }; + IMAGE_NODE(VkImage img, const VkImageCreateInfo *pCreateInfo) + : image(img), createInfo(*pCreateInfo), mem(VK_NULL_HANDLE), valid(false), memOffset(0), memSize(0) { in_use.store(0); }; IMAGE_NODE(const IMAGE_NODE &rh_obj) - : createInfo(rh_obj.createInfo), mem(rh_obj.mem), valid(rh_obj.valid), memOffset(rh_obj.memOffset), + : image(rh_obj.image), createInfo(rh_obj.createInfo), mem(rh_obj.mem), valid(rh_obj.valid), memOffset(rh_obj.memOffset), memSize(rh_obj.memSize) { in_use.store(rh_obj.in_use.load()); }; |
