icd: Support for command pools
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 0ce4e6a..4738426 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1116,11 +1116,11 @@
         pCB->pCmds.clear();
         // Reset CB state
         VkFlags saveFlags = pCB->flags;
-        uint32_t saveQueueNodeIndex = pCB->queueNodeIndex;
+        VkCmdPool savedPool = pCB->pool;
         memset(pCB, 0, sizeof(GLOBAL_CB_NODE));
         pCB->cmdBuffer = cb;
         pCB->flags = saveFlags;
-        pCB->queueNodeIndex = saveQueueNodeIndex;
+        pCB->pool = savedPool;
         pCB->lastVtxBinding = MAX_BINDING;
     }
 }
@@ -1987,7 +1987,7 @@
         memset(pCB, 0, sizeof(GLOBAL_CB_NODE));
         pCB->cmdBuffer = *pCmdBuffer;
         pCB->flags = pCreateInfo->flags;
-        pCB->queueNodeIndex = pCreateInfo->queueNodeIndex;
+        pCB->pool = pCreateInfo->cmdPool;
         pCB->lastVtxBinding = MAX_BINDING;
         cmdBufferMap[*pCmdBuffer] = pCB;
         loader_platform_thread_unlock_mutex(&globalLock);
@@ -2036,9 +2036,9 @@
     return result;
 }
 
-VK_LAYER_EXPORT VkResult VKAPI vkResetCommandBuffer(VkCmdBuffer cmdBuffer)
+VK_LAYER_EXPORT VkResult VKAPI vkResetCommandBuffer(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags)
 {
-    VkResult result = get_dispatch_table(draw_state_device_table_map, cmdBuffer)->ResetCommandBuffer(cmdBuffer);
+    VkResult result = get_dispatch_table(draw_state_device_table_map, cmdBuffer)->ResetCommandBuffer(cmdBuffer, flags);
     if (VK_SUCCESS == result) {
         resetCB(cmdBuffer);
         updateCBTracking(cmdBuffer);
diff --git a/layers/draw_state.h b/layers/draw_state.h
index e4fbec3..5491e48 100644
--- a/layers/draw_state.h
+++ b/layers/draw_state.h
@@ -234,7 +234,7 @@
 // Cmd Buffer Wrapper Struct
 typedef struct _GLOBAL_CB_NODE {
     VkCmdBuffer                  cmdBuffer;
-    uint32_t                     queueNodeIndex;
+    VkCmdPool                    pool;
     VkFlags                      flags;
     VkFence                      fence;    // fence tracking this cmd buffer
     uint64_t                     numCmds;  // number of cmds in this CB
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index fd27950..80a86a2 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -2325,7 +2325,8 @@
 }
 
 VK_LAYER_EXPORT VkResult VKAPI vkResetCommandBuffer(
-    VkCmdBuffer cmdBuffer)
+    VkCmdBuffer cmdBuffer,
+    VkCmdBufferResetFlags flags)
 {
     loader_platform_thread_lock_mutex(&globalLock);
     // Verify that CB is complete (not in-flight)
@@ -2338,7 +2339,7 @@
     // Clear memory references as this point.
     clear_cmd_buf_and_mem_references(cmdBuffer);
     loader_platform_thread_unlock_mutex(&globalLock);
-    VkResult result = get_dispatch_table(mem_tracker_device_table_map, cmdBuffer)->ResetCommandBuffer(cmdBuffer);
+    VkResult result = get_dispatch_table(mem_tracker_device_table_map, cmdBuffer)->ResetCommandBuffer(cmdBuffer, flags);
     return result;
 }
 // TODO : For any vkCmdBind* calls that include an object which has mem bound to it,