bug-14258: Make descriptor pools and command pools more consistent
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 618e0fc..dc9f8da 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -4606,20 +4606,11 @@
bool PostCreateDescriptorPool(
VkDevice device,
- VkDescriptorPoolUsage poolUsage,
uint32_t maxSets,
VkDescriptorPool* pDescriptorPool,
VkResult result)
{
- if(poolUsage < VK_DESCRIPTOR_POOL_USAGE_BEGIN_RANGE ||
- poolUsage > VK_DESCRIPTOR_POOL_USAGE_END_RANGE)
- {
- log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkCreateDescriptorPool parameter, VkDescriptorPoolUsage poolUsage, is an unrecognized enumerator");
- return false;
- }
-
/* TODOVV: How do we validate maxSets? Probably belongs in the limits layer? */
if(pDescriptorPool != nullptr)
@@ -4645,7 +4636,7 @@
VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateDescriptorPool(device, pCreateInfo, pDescriptorPool);
- PostCreateDescriptorPool(device, pCreateInfo->poolUsage, pCreateInfo->maxSets, pDescriptorPool, result);
+ PostCreateDescriptorPool(device, pCreateInfo->maxSets, pDescriptorPool, result);
return result;
}
@@ -4669,9 +4660,10 @@
VK_LAYER_EXPORT VkResult VKAPI vkResetDescriptorPool(
VkDevice device,
- VkDescriptorPool descriptorPool)
+ VkDescriptorPool descriptorPool,
+ VkDescriptorPoolResetFlags flags)
{
- VkResult result = get_dispatch_table(pc_device_table_map, device)->ResetDescriptorPool(device, descriptorPool);
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->ResetDescriptorPool(device, descriptorPool, flags);
PostResetDescriptorPool(device, descriptorPool, result);
@@ -4692,22 +4684,12 @@
bool PostAllocDescriptorSets(
VkDevice device,
VkDescriptorPool descriptorPool,
- VkDescriptorSetUsage setUsage,
uint32_t count,
VkDescriptorSet* pDescriptorSets,
VkResult result)
{
- if(setUsage < VK_DESCRIPTOR_SET_USAGE_BEGIN_RANGE ||
- setUsage > VK_DESCRIPTOR_SET_USAGE_END_RANGE)
- {
- log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkAllocDescriptorSets parameter, VkDescriptorSetUsage setUsage, is an unrecognized enumerator");
- return false;
- }
-
-
if(pDescriptorSets != nullptr)
{
}
@@ -4724,17 +4706,14 @@
VK_LAYER_EXPORT VkResult VKAPI vkAllocDescriptorSets(
VkDevice device,
- VkDescriptorPool descriptorPool,
- VkDescriptorSetUsage setUsage,
- uint32_t count,
- const VkDescriptorSetLayout* pSetLayouts,
+ const VkDescriptorSetAllocInfo* pAllocInfo,
VkDescriptorSet* pDescriptorSets)
{
- PreAllocDescriptorSets(device, pSetLayouts);
+ PreAllocDescriptorSets(device, pAllocInfo->pSetLayouts);
- VkResult result = get_dispatch_table(pc_device_table_map, device)->AllocDescriptorSets(device, descriptorPool, setUsage, count, pSetLayouts, pDescriptorSets);
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->AllocDescriptorSets(device, pAllocInfo, pDescriptorSets);
- PostAllocDescriptorSets(device, descriptorPool, setUsage, count, pDescriptorSets, result);
+ PostAllocDescriptorSets(device, pAllocInfo->descriptorPool, pAllocInfo->count, pDescriptorSets, result);
return result;
}
@@ -5184,21 +5163,21 @@
bool PreCreateCommandBuffer(
VkDevice device,
- const VkCmdBufferCreateInfo* pCreateInfo)
+ const VkCmdBufferAllocInfo* pCreateInfo)
{
if(pCreateInfo != nullptr)
{
- if(pCreateInfo->sType != VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO)
+ if(pCreateInfo->sType != VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO)
{
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkCreateCommandBuffer parameter, VkStructureType pCreateInfo->sType, is an invalid enumerator");
+ "vkAllocCommandBuffers parameter, VkStructureType pCreateInfo->sType, is an invalid enumerator");
return false;
}
if(pCreateInfo->level < VK_CMD_BUFFER_LEVEL_BEGIN_RANGE ||
pCreateInfo->level > VK_CMD_BUFFER_LEVEL_END_RANGE)
{
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkCreateCommandBuffer parameter, VkCmdBufferLevel pCreateInfo->level, is an unrecognized enumerator");
+ "vkAllocCommandBuffers parameter, VkCmdBufferLevel pCreateInfo->level, is an unrecognized enumerator");
return false;
}
}
@@ -5218,7 +5197,7 @@
if(result < VK_SUCCESS)
{
- std::string reason = "vkCreateCommandBuffer parameter, VkResult result, is " + EnumeratorString(result);
+ std::string reason = "vkAllocCommandBuffers parameter, VkResult result, is " + EnumeratorString(result);
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
return false;
}
@@ -5226,14 +5205,14 @@
return true;
}
-VK_LAYER_EXPORT VkResult VKAPI vkCreateCommandBuffer(
+VK_LAYER_EXPORT VkResult VKAPI vkAllocCommandBuffers(
VkDevice device,
- const VkCmdBufferCreateInfo* pCreateInfo,
+ const VkCmdBufferAllocInfo* pCreateInfo,
VkCmdBuffer* pCmdBuffer)
{
PreCreateCommandBuffer(device, pCreateInfo);
- VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateCommandBuffer(device, pCreateInfo, pCmdBuffer);
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->AllocCommandBuffers(device, pCreateInfo, pCmdBuffer);
PostCreateCommandBuffer(device, pCmdBuffer, result);
@@ -6804,8 +6783,8 @@
return (PFN_vkVoidFunction) vkCmdSetStencilWriteMask;
if (!strcmp(funcName, "vkCmdSetStencilReference"))
return (PFN_vkVoidFunction) vkCmdSetStencilReference;
- if (!strcmp(funcName, "vkCreateCommandBuffer"))
- return (PFN_vkVoidFunction) vkCreateCommandBuffer;
+ if (!strcmp(funcName, "vkAllocCommandBuffers"))
+ return (PFN_vkVoidFunction) vkAllocCommandBuffers;
if (!strcmp(funcName, "vkBeginCommandBuffer"))
return (PFN_vkVoidFunction) vkBeginCommandBuffer;
if (!strcmp(funcName, "vkEndCommandBuffer"))