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;
};