aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2016-03-09 12:06:45 +1300
committerTobin Ehlis <tobine@google.com>2016-03-09 07:35:21 -0700
commitaf970211d93a2d5549002eb679b655ad6fa94655 (patch)
treee6e80537816f61224dcb679ca2c0e78400d6e6aa
parent0bd3bec9e5ae7dc71288e63cf0a5ed327ecf726a (diff)
downloadusermoji-af970211d93a2d5549002eb679b655ad6fa94655.tar.xz
layers: Lighten object tracker slightly
Just avoiding some repeated unordered_map lookups. Signed-off-by: Chris Forbes <chrisforbes@google.com>
-rwxr-xr-xvk-layer-generate.py24
1 files changed, 13 insertions, 11 deletions
diff --git a/vk-layer-generate.py b/vk-layer-generate.py
index d9ed3157..242d97e9 100755
--- a/vk-layer-generate.py
+++ b/vk-layer-generate.py
@@ -873,8 +873,9 @@ class ObjectTrackerSubcommand(Subcommand):
procs_txt.append('static void destroy_%s(VkDevice dispatchable_object, %s object)' % (name, o))
procs_txt.append('{')
procs_txt.append(' uint64_t object_handle = (uint64_t)(object);')
- procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o))
- procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[(uint64_t)object];' % (o))
+ procs_txt.append(' auto it = %sMap.find(object_handle);' % o)
+ procs_txt.append(' if (it != %sMap.end()) {' % o)
+ procs_txt.append(' OBJTRACK_NODE* pNode = it->second;')
procs_txt.append(' uint32_t objIndex = objTypeToIndex(pNode->objType);')
procs_txt.append(' assert(numTotalObjs > 0);')
procs_txt.append(' numTotalObjs--;')
@@ -885,7 +886,7 @@ class ObjectTrackerSubcommand(Subcommand):
procs_txt.append(' string_VkDebugReportObjectTypeEXT(pNode->objType), (uint64_t)(object), numTotalObjs, numObjs[objIndex],')
procs_txt.append(' string_VkDebugReportObjectTypeEXT(pNode->objType));')
procs_txt.append(' delete pNode;')
- procs_txt.append(' %sMap.erase(object_handle);' % (o))
+ procs_txt.append(' %sMap.erase(it);' % (o))
procs_txt.append(' } else {')
procs_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK",')
procs_txt.append(' "Unable to remove obj 0x%" PRIxLEAST64 ". Was it created? Has it already been destroyed?",')
@@ -901,9 +902,9 @@ class ObjectTrackerSubcommand(Subcommand):
procs_txt.append('{')
procs_txt.append(' if (object != VK_NULL_HANDLE) {')
procs_txt.append(' uint64_t object_handle = (uint64_t)(object);')
- procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o))
- procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[object_handle];' % (o))
- procs_txt.append(' pNode->status |= status_flag;')
+ procs_txt.append(' auto it = %sMap.find(object_handle);' % o)
+ procs_txt.append(' if (it != %sMap.end()) {' % o)
+ procs_txt.append(' it->second->status |= status_flag;')
procs_txt.append(' }')
procs_txt.append(' else {')
procs_txt.append(' // If we do not find it print an error')
@@ -929,8 +930,9 @@ class ObjectTrackerSubcommand(Subcommand):
procs_txt.append(' const char *fail_msg)')
procs_txt.append('{')
procs_txt.append(' uint64_t object_handle = (uint64_t)(object);')
- procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o))
- procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[object_handle];' % (o))
+ procs_txt.append(' auto it = %sMap.find(object_handle);' % o)
+ procs_txt.append(' if (it != %sMap.end()) {' % o)
+ procs_txt.append(' OBJTRACK_NODE* pNode = it->second;')
procs_txt.append(' if ((pNode->status & status_mask) != status_flag) {')
procs_txt.append(' log_msg(mdd(dispatchable_object), msg_flags, pNode->objType, object_handle, __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK",')
procs_txt.append(' "OBJECT VALIDATION WARNING: %s object 0x%" PRIxLEAST64 ": %s", string_VkDebugReportObjectTypeEXT(objType),')
@@ -955,9 +957,9 @@ class ObjectTrackerSubcommand(Subcommand):
procs_txt.append('static VkBool32 reset_%s_status(VkDevice dispatchable_object, %s object, VkDebugReportObjectTypeEXT objType, ObjectStatusFlags status_flag)' % (name, o))
procs_txt.append('{')
procs_txt.append(' uint64_t object_handle = (uint64_t)(object);')
- procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o))
- procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[object_handle];' % (o))
- procs_txt.append(' pNode->status &= ~status_flag;')
+ procs_txt.append(' auto it = %sMap.find(object_handle);' % o)
+ procs_txt.append(' if (it != %sMap.end()) {' % o)
+ procs_txt.append(' it->second->status &= ~status_flag;')
procs_txt.append(' }')
procs_txt.append(' else {')
procs_txt.append(' // If we do not find it print an error')