aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2016-03-31 18:11:28 +1300
committerTobin Ehlis <tobine@google.com>2016-04-01 14:24:37 -0600
commitdc13bed1bdf58f47f50053323ee3222b42576ddc (patch)
tree344fb955ec24833f899866195c2874f976d1ac5c /layers/core_validation.cpp
parent33793e9abbfb13d554ff0972e6ad42b69571f5f7 (diff)
downloadusermoji-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.cpp29
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();
}
}