tests: Integrate command pools into tests
diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt
index 98b3fc6..ea08e4d 100644
--- a/layers/CMakeLists.txt
+++ b/layers/CMakeLists.txt
@@ -138,7 +138,7 @@
add_vk_layer(ShaderChecker shader_checker.cpp vk_layer_table.cpp)
add_vk_layer(Image image.cpp vk_layer_table.cpp)
# TODO: Re-enable after ParamChecker updated
-#add_vk_layer(ParamChecker param_checker.cpp vk_layer_debug_marker_table.cpp vk_layer_table.cpp)
+add_vk_layer(ParamChecker param_checker.cpp vk_layer_debug_marker_table.cpp vk_layer_table.cpp)
#add_vk_layer(ScreenShot screenshot.cpp vk_layer_table.cpp)
# generated
add_vk_layer(Generic generic_layer.cpp vk_layer_table.cpp)
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 17ccad4..8a7c672 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -4665,20 +4665,8 @@
"vkCreateGraphicsPipeline parameter, VkStructureType pCreateInfo->pDsState->sType, is unrecognized enumerator");
return false;
}
-<<<<<<< HEAD
- if(pCreateInfo->pDsState->depthCompareOp < VK_COMPARE_OP_BEGIN_RANGE ||
- pCreateInfo->pDsState->depthCompareOp > VK_COMPARE_OP_END_RANGE)
-=======
- if(pCreateInfo->pDepthStencilState->format < VK_FORMAT_BEGIN_RANGE ||
- pCreateInfo->pDepthStencilState->format > VK_FORMAT_END_RANGE)
- {
- log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkCreateGraphicsPipeline parameter, VkFormat pCreateInfo->pDsState->format, is unrecognized enumerator");
- return false;
- }
if(pCreateInfo->pDepthStencilState->depthCompareOp < VK_COMPARE_OP_BEGIN_RANGE ||
pCreateInfo->pDepthStencilState->depthCompareOp > VK_COMPARE_OP_END_RANGE)
->>>>>>> fd61c93... Bug 14224: Remove abbreviations on some API symbols
{
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
"vkCreateGraphicsPipeline parameter, VkCompareOp pCreateInfo->pDsState->depthCompareOp, is unrecognized enumerator");
@@ -4817,24 +4805,13 @@
}
if(!ValidateEnumerator((VkChannelFlagBits)pCreateInfo->pColorBlendState->pAttachments->channelWriteMask))
{
-<<<<<<< HEAD
- std::string reason = "vkCreateGraphicsPipeline parameter, VkChannelFlags pCreateInfo->pCbState->pAttachments->channelWriteMask, is " + EnumeratorString((VkChannelFlagBits)pCreateInfo->pCbState->pAttachments->channelWriteMask);
- log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
-=======
std::string reason = "vkCreateGraphicsPipeline parameter, VkChannelFlags pCreateInfo->pCbState->pAttachments->channelWriteMask, is " + EnumeratorString((VkChannelFlagBits)pCreateInfo->pColorBlendState->pAttachments->channelWriteMask);
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
->>>>>>> fd61c93... Bug 14224: Remove abbreviations on some API symbols
return false;
}
if(!ValidateEnumerator((VkPipelineCreateFlagBits)pCreateInfo->flags))
{
std::string reason = "vkCreateGraphicsPipeline parameter, VkPipelineCreateFlags pCreateInfo->flags, is " + EnumeratorString((VkPipelineCreateFlagBits)pCreateInfo->flags);
-<<<<<<< HEAD
- log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
- return false;
- }
- if(pCreateInfo->layout.handle == 0)
-=======
log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", reason.c_str());
return false;
}
@@ -4865,27 +4842,11 @@
return true;
}
-VK_LAYER_EXPORT VkResult VKAPI vkCreateGraphicsPipeline(
- VkDevice device,
- const VkGraphicsPipelineCreateInfo* pCreateInfo,
- VkPipeline* pPipeline)
-{
- PreCreateGraphicsPipeline(device, pCreateInfo);
-
- VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateGraphicsPipeline(device, pCreateInfo, pPipeline);
-
- PostCreateGraphicsPipeline(device, pPipeline, result);
-
- return result;
-}
-
bool PostDestroyPipeline(
VkDevice device,
VkPipeline pipeline,
VkResult result)
{
-
-
if(result != VK_SUCCESS)
{
std::string reason = "vkDestroyPipeline parameter, VkResult result, is " + EnumeratorString(result);
@@ -4896,17 +4857,6 @@
return true;
}
-VK_LAYER_EXPORT VkResult VKAPI vkDestroyPipeline(
- VkDevice device,
- VkPipeline pipeline)
-{
- VkResult result = get_dispatch_table(pc_device_table_map, device)->DestroyPipeline(device, pipeline);
-
- PostDestroyPipeline(device, pipeline, result);
-
- return result;
-}
-
bool PreCreateGraphicsPipelineDerivative(
VkDevice device,
const VkGraphicsPipelineCreateInfo* pCreateInfo)
@@ -5135,13 +5085,6 @@
"vkCreateGraphicsPipelineDerivative parameter, VkStructureType pCreateInfo->pDsState->sType, is unrecognized enumerator");
return false;
}
- if(pCreateInfo->pDepthStencilState->format < VK_FORMAT_BEGIN_RANGE ||
- pCreateInfo->pDepthStencilState->format > VK_FORMAT_END_RANGE)
- {
- log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkCreateGraphicsPipelineDerivative parameter, VkFormat pCreateInfo->pDsState->format, is unrecognized enumerator");
- return false;
- }
if(pCreateInfo->pDepthStencilState->depthCompareOp < VK_COMPARE_OP_BEGIN_RANGE ||
pCreateInfo->pDepthStencilState->depthCompareOp > VK_COMPARE_OP_END_RANGE)
{
@@ -5321,21 +5264,6 @@
return true;
}
-VK_LAYER_EXPORT VkResult VKAPI vkCreateGraphicsPipelineDerivative(
- VkDevice device,
- const VkGraphicsPipelineCreateInfo* pCreateInfo,
- VkPipeline basePipeline,
- VkPipeline* pPipeline)
-{
- PreCreateGraphicsPipelineDerivative(device, pCreateInfo);
-
- VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateGraphicsPipelineDerivative(device, pCreateInfo, basePipeline, pPipeline);
-
- PostCreateGraphicsPipelineDerivative(device, basePipeline, pPipeline, result);
-
- return result;
-}
-
bool PreCreateComputePipeline(
VkDevice device,
const VkComputePipelineCreateInfo* pCreateInfo)
@@ -5409,7 +5337,6 @@
}
if(result != VK_SUCCESS)
->>>>>>> fd61c93... Bug 14224: Remove abbreviations on some API symbols
{
log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
"vkCreateGraphicsPipeline parameter, VkPipelineLayout pCreateInfo->layout, is null pointer");
@@ -5419,21 +5346,6 @@
return true;
}
-bool PostDestroyPipeline(
- VkDevice device,
- VkPipeline pipeline,
- VkResult result)
-{
- if(result != VK_SUCCESS)
- {
- std::string reason = "vkDestroyPipeline 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;
- }
-
- return true;
-}
-
VK_LAYER_EXPORT VkResult VKAPI vkDestroyPipeline(
VkDevice device,
VkPipeline pipeline)
@@ -5445,29 +5357,6 @@
return result;
}
-bool PostCreateGraphicsPipeline(
- VkDevice device,
- VkPipeline* pPipeline,
- VkResult result)
-{
-
- if(pPipeline == nullptr)
- {
- log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkCreateGraphicsPipeline parameter, VkPipeline* pPipeline, is null pointer");
- return false;
- }
-
- if(result != VK_SUCCESS)
- {
- std::string reason = "vkCreateGraphicsPipeline 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;
- }
-
- return true;
-}
-
//TODO handle count > 1
void PostCreateGraphicsPipeline(
VkDevice device,
@@ -6854,9 +6743,10 @@
}
VK_LAYER_EXPORT VkResult VKAPI vkResetCommandBuffer(
- VkCmdBuffer cmdBuffer)
+ VkCmdBuffer cmdBuffer,
+ VkCmdBufferResetFlags flags)
{
- VkResult result = get_dispatch_table(pc_device_table_map, cmdBuffer)->ResetCommandBuffer(cmdBuffer);
+ VkResult result = get_dispatch_table(pc_device_table_map, cmdBuffer)->ResetCommandBuffer(cmdBuffer, flags);
PostResetCommandBuffer(cmdBuffer, result);
diff --git a/tests/blit_tests.cpp b/tests/blit_tests.cpp
index d7d0762..e169574 100644
--- a/tests/blit_tests.cpp
+++ b/tests/blit_tests.cpp
@@ -517,7 +517,8 @@
VkCmdBlitTest() :
dev_(environment->default_device()),
queue_(*dev_.graphics_queues()[0]),
- cmd_(dev_, vk_testing::CmdBuffer::create_info(dev_.graphics_queue_node_index_))
+ pool_(dev_, vk_testing::CmdPool::create_info(dev_.graphics_queue_node_index_)),
+ cmd_(dev_, vk_testing::CmdBuffer::create_info(pool_.handle()))
{
// make sure every test uses a different pattern
vk_testing::ImageChecker::hash_salt_generate();
@@ -533,6 +534,7 @@
vk_testing::Device &dev_;
vk_testing::Queue &queue_;
+ vk_testing::CmdPool pool_;
vk_testing::CmdBuffer cmd_;
std::vector<VkDeviceMemory> mem_refs_;
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index 7d62c77..39662da 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -823,6 +823,14 @@
NON_DISPATCHABLE_HANDLE_INIT(vkCreateDynamicDepthStencilState, dev, &info);
}
+NON_DISPATCHABLE_HANDLE_DTOR(CmdPool, vkDestroyCommandPool)
+
+void CmdPool::init(const Device &dev, const VkCmdPoolCreateInfo &info)
+{
+ NON_DISPATCHABLE_HANDLE_INIT(vkCreateCommandPool, dev, &info);
+}
+
+
CmdBuffer::~CmdBuffer()
{
if (initialized())
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 82340d6..67c592a 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -60,6 +60,7 @@
class DynamicColorBlendState;
class DynamicDepthStencilState;
class CmdBuffer;
+class CmdPool;
std::vector<VkLayerProperties> GetGlobalLayers();
std::vector<VkExtensionProperties> GetGlobalExtensions();
@@ -577,6 +578,27 @@
void init(const Device &dev, const VkDynamicDepthStencilStateCreateInfo &info);
};
+class CmdPool : public internal::NonDispHandle<VkCmdPool> {
+public:
+ ~CmdPool();
+
+ explicit CmdPool() : NonDispHandle() {}
+ explicit CmdPool(const Device &dev, const VkCmdPoolCreateInfo &info) { init(dev, info); }
+
+ // vkCreateDynamicDepthStencilState()
+ void init(const Device &dev, const VkCmdPoolCreateInfo &info);
+
+ static VkCmdPoolCreateInfo create_info(uint32_t queue_family_index);
+};
+
+inline VkCmdPoolCreateInfo CmdPool::create_info(uint32_t queue_family_index)
+{
+ VkCmdPoolCreateInfo info = {};
+ info.sType = VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO;
+ info.queueFamilyIndex = queue_family_index;
+ return info;
+}
+
class CmdBuffer : public internal::Handle<VkCmdBuffer> {
public:
~CmdBuffer();
@@ -597,7 +619,7 @@
void reset(VkCmdBufferResetFlags flags);
void reset() { reset(VK_CMD_BUFFER_RESET_RELEASE_RESOURCES); }
- static VkCmdBufferCreateInfo create_info(VkCmdPool pool);
+ static VkCmdBufferCreateInfo create_info(VkCmdPool const &pool);
private:
VkDevice dev_handle_;
@@ -804,7 +826,7 @@
return copy;
}
-inline VkCmdBufferCreateInfo CmdBuffer::create_info(VkCmdPool pool)
+inline VkCmdBufferCreateInfo CmdBuffer::create_info(VkCmdPool const &pool)
{
VkCmdBufferCreateInfo info = {};
info.sType = VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO;