layers: Add CommandBufferPool validation to MemTracker
diff --git a/layers/mem_tracker.h b/layers/mem_tracker.h
index 1963b38..cfc3342 100644
--- a/layers/mem_tracker.h
+++ b/layers/mem_tracker.h
@@ -110,9 +110,8 @@
     VkMemoryAllocateInfo        allocInfo;
     list<MT_OBJ_HANDLE_TYPE>    pObjBindings;           // list container of objects bound to this memory
     list<VkCommandBuffer>       pCommandBufferBindings; // list container of cmd buffers that reference this mem object
-    list<VkCommandBuffer>       pCmdBufferBindings;     // list container of cmd buffers that reference this mem object
     MemRange                    memRange;
-    void                        *pData, *pDriverData;
+    void                       *pData, *pDriverData;
 };
 
 // This only applies to Buffers and Images, which can have memory bound to them
@@ -126,10 +125,10 @@
 
 // Track all command buffers
 typedef struct _MT_CB_INFO {
-    VkCommandBufferAllocateInfo       createInfo;
+    VkCommandBufferAllocateInfo createInfo;
     VkPipeline                  pipelines[VK_PIPELINE_BIND_POINT_RANGE_SIZE];
     uint32_t                    attachmentCount;
-    VkCommandBuffer                 commandBuffer;
+    VkCommandBuffer             commandBuffer;
     uint64_t                    fenceId;
     VkFence                     lastSubmittedFence;
     VkQueue                     lastSubmittedQueue;
@@ -139,10 +138,17 @@
     _MT_CB_INFO():createInfo{},pipelines{},attachmentCount(0),fenceId(0),lastSubmittedFence{},lastSubmittedQueue{} {};
 } MT_CB_INFO;
 
+
+// Track command pools and their command buffers
+typedef struct _MT_CMD_POOL_INFO {
+    VkCommandPoolCreateFlags    createFlags;
+    list<VkCommandBuffer>       pCommandBuffers; // list container of cmd buffers allocated from this pool
+} MT_CMD_POOL_INFO;
+
 // Associate fenceId with a fence object
 struct MT_FENCE_INFO {
-    uint64_t  fenceId;          // Sequence number for fence at last submit
-    VkQueue   queue;            // Queue that this fence is submitted against or NULL
+    uint64_t          fenceId;          // Sequence number for fence at last submit
+    VkQueue           queue;            // Queue that this fence is submitted against or NULL
     VkFenceCreateInfo createInfo;
 };
 
@@ -150,7 +156,7 @@
 struct MT_QUEUE_INFO {
     uint64_t                    lastRetiredId;
     uint64_t                    lastSubmittedId;
-    list<VkCommandBuffer>           pQueueCommandBuffers;
+    list<VkCommandBuffer>       pQueueCommandBuffers;
     list<VkDeviceMemory>        pMemRefList;
 };