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,