diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-03-31 18:11:28 +1300 |
|---|---|---|
| committer | Tobin Ehlis <tobine@google.com> | 2016-04-01 14:24:37 -0600 |
| commit | dc13bed1bdf58f47f50053323ee3222b42576ddc (patch) | |
| tree | 344fb955ec24833f899866195c2874f976d1ac5c /layers/core_validation.cpp | |
| parent | 33793e9abbfb13d554ff0972e6ad42b69571f5f7 (diff) | |
| download | usermoji-dc13bed1bdf58f47f50053323ee3222b42576ddc.tar.xz | |
layers: Replace GLOBAL_CB_NODE::pMemObjList with unordered_set
One more std::list gone.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp index 244ef692..be85127e 100644 --- a/layers/core_validation.cpp +++ b/layers/core_validation.cpp @@ -553,20 +553,7 @@ static VkBool32 update_cmd_buf_and_mem_references(layer_data *dev_data, const Vk GLOBAL_CB_NODE *pCBNode = getCBNode(dev_data, cb); // TODO: keep track of all destroyed CBs so we know if this is a stale or simply invalid object if (pCBNode) { - // Search for memory object in cmd buffer's reference list - VkBool32 found = VK_FALSE; - if (pCBNode->pMemObjList.size() > 0) { - for (auto it = pCBNode->pMemObjList.begin(); it != pCBNode->pMemObjList.end(); ++it) { - if ((*it) == mem) { - found = VK_TRUE; - break; - } - } - } - // If not present, add to list - if (found == VK_FALSE) { - pCBNode->pMemObjList.push_front(mem); - } + pCBNode->memObjs.insert(mem); } } } @@ -578,14 +565,14 @@ static void clear_cmd_buf_and_mem_references(layer_data *dev_data, const VkComma GLOBAL_CB_NODE *pCBNode = getCBNode(dev_data, cb); if (pCBNode) { - if (pCBNode->pMemObjList.size() > 0) { - for (auto mem : pCBNode->pMemObjList) { + if (pCBNode->memObjs.size() > 0) { + for (auto mem : pCBNode->memObjs) { DEVICE_MEM_INFO *pInfo = get_mem_obj_info(dev_data, mem); if (pInfo) { pInfo->commandBufferBindings.erase(cb); } } - pCBNode->pMemObjList.clear(); + pCBNode->memObjs.clear(); } pCBNode->validate_functions.clear(); } @@ -949,11 +936,11 @@ static void printCBList(layer_data *my_data, void *dispObj) { __LINE__, MEMTRACK_NONE, "MEM", " CB Info (%p) has CB %p, fenceId %" PRIx64 ", and fence %#" PRIxLEAST64, (void *)pCBInfo, (void *)pCBInfo->commandBuffer, pCBInfo->fenceId, (uint64_t)pCBInfo->lastSubmittedFence); - if (pCBInfo->pMemObjList.size() <= 0) + if (pCBInfo->memObjs.size() <= 0) continue; - for (list<VkDeviceMemory>::iterator it = pCBInfo->pMemObjList.begin(); it != pCBInfo->pMemObjList.end(); ++it) { + for (auto obj : pCBInfo->memObjs) { log_msg(my_data->report_data, VK_DEBUG_REPORT_INFORMATION_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, 0, - __LINE__, MEMTRACK_NONE, "MEM", " Mem obj %" PRIu64, (uint64_t)(*it)); + __LINE__, MEMTRACK_NONE, "MEM", " Mem obj %" PRIu64, (uint64_t)obj); } } } @@ -4479,7 +4466,7 @@ static void resetCB(layer_data *my_data, const VkCommandBuffer cb) { pCB->updateImages.clear(); pCB->updateBuffers.clear(); pCB->validate_functions.clear(); - pCB->pMemObjList.clear(); + pCB->memObjs.clear(); pCB->eventUpdates.clear(); } } |
