layers: Suppress error messages for undestroyed descriptorSets
authorMark Lobodzinski <mark@lunarg.com>
Thu, 8 Oct 2015 22:12:49 +0000 (16:12 -0600)
committerMark Lobodzinski <mark@lunarg.com>
Thu, 8 Oct 2015 22:20:04 +0000 (16:20 -0600)
DescriptorSets are not explicitly destroyed. ObjectTracker will need to be
extended to handle these types of cases.

vk-layer-generate.py

index 0a5a422..0e2aba0 100755 (executable)
@@ -1480,12 +1480,15 @@ class ObjectTrackerSubcommand(Subcommand):
         for o in vulkan.core.objects:
             if o in ['VkInstance', 'VkPhysicalDevice', 'VkQueue', 'VkDevice']:
                 continue
-            gedd_txt.append('    for (auto it = %sMap.begin(); it != %sMap.end(); ++it) {' % (o, o))
-            gedd_txt.append('        OBJTRACK_NODE* pNode = it->second;')
-            gedd_txt.append('        log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, pNode->objType, pNode->vkObj, 0, OBJTRACK_OBJECT_LEAK, "OBJTRACK",')
-            gedd_txt.append('                "OBJ ERROR : %s object 0x%" PRIxLEAST64 " has not been destroyed.", string_VkDbgObjectType(pNode->objType),')
-            gedd_txt.append('                pNode->vkObj);')
-            gedd_txt.append('    }')
+            if o != 'VkDescriptorSet':
+                gedd_txt.append('    for (auto it = %sMap.begin(); it != %sMap.end(); ++it) {' % (o, o))
+                gedd_txt.append('        OBJTRACK_NODE* pNode = it->second;')
+                gedd_txt.append('        log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, pNode->objType, pNode->vkObj, 0, OBJTRACK_OBJECT_LEAK, "OBJTRACK",')
+                gedd_txt.append('                "OBJ ERROR : %s object 0x%" PRIxLEAST64 " has not been destroyed.", string_VkDbgObjectType(pNode->objType),')
+                gedd_txt.append('                pNode->vkObj);')
+                gedd_txt.append('    }')
+            else:
+                gedd_txt.append('    // DescriptorSets are implicitly cleared via DestroyDescriptorPool, ignore remaining objects')
             gedd_txt.append('    %sMap.clear();' % (o))
             gedd_txt.append('')
         gedd_txt.append("    // Clean up Queue's MemRef Linked Lists")