aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--layers/core_validation.cpp4
-rw-r--r--layers/core_validation_types.h9
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());
};