From 07c81dc68a0ae134cf24a0b5365b318d13699359 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Fri, 24 Jun 2016 14:28:59 -0600 Subject: layers: Refactor framebuffer look-up Make better use of getFramebuffer() and add framebuffer member to FRAMEBUFFER_NODE. --- layers/core_validation.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'layers/core_validation.cpp') diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 84cffc41..7e14c95b 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -3775,9 +3775,9 @@ static void resetCB(layer_data *dev_data, const VkCommandBuffer cb) { // Remove this cmdBuffer's reference from each FrameBuffer's CB ref list for (auto framebuffer : pCB->framebuffers) { - auto fbNode = getFramebuffer(dev_data, framebuffer); - if (fbNode) - fbNode->cb_bindings.erase(pCB->commandBuffer); + auto fb_node = getFramebuffer(dev_data, framebuffer); + if (fb_node) + fb_node->cb_bindings.erase(pCB->commandBuffer); } pCB->framebuffers.clear(); pCB->activeFramebuffer = VK_NULL_HANDLE; @@ -5527,9 +5527,9 @@ VKAPI_ATTR void VKAPI_CALL DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks *pAllocator) { layer_data *dev_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map); std::unique_lock lock(global_lock); - auto fbNode = dev_data->frameBufferMap.find(framebuffer); - if (fbNode != dev_data->frameBufferMap.end()) { - for (auto cb : fbNode->second->cb_bindings) { + auto fb_node = getFramebuffer(dev_data, framebuffer); + if (fb_node) { + for (auto cb : fb_node->cb_bindings) { auto cb_node = getCBNode(dev_data, cb); if (cb_node) { // Set CB as invalid and record destroyed framebuffer @@ -5537,7 +5537,7 @@ DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocatio cb_node->destroyedFramebuffers.insert(framebuffer); } } - dev_data->frameBufferMap.erase(fbNode); + dev_data->frameBufferMap.erase(fb_node->framebuffer); } lock.unlock(); dev_data->device_dispatch_table->DestroyFramebuffer(device, framebuffer, pAllocator); @@ -8402,7 +8402,7 @@ static bool PreCallValidateCreateFramebuffer(layer_data *dev_data, const VkFrame static void PostCallRecordCreateFramebuffer(layer_data *dev_data, const VkFramebufferCreateInfo *pCreateInfo, VkFramebuffer fb) { // Shadow create info and store in map std::unique_ptr fb_node( - new FRAMEBUFFER_NODE(pCreateInfo, dev_data->renderPassMap[pCreateInfo->renderPass]->pCreateInfo)); + new FRAMEBUFFER_NODE(fb, pCreateInfo, dev_data->renderPassMap[pCreateInfo->renderPass]->pCreateInfo)); for (uint32_t i = 0; i < pCreateInfo->attachmentCount; ++i) { VkImageView view = pCreateInfo->pAttachments[i]; -- cgit v1.2.3