test/binding: inherit Pipeline from NonDispHandle
This also assumes VkPipeline does not require any VkDeviceMemory.
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 10722e9..8f3eeeb 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -1469,7 +1469,7 @@
void VkCommandBufferObj::BindPipeline(VkPipelineObj &pipeline)
{
- vkCmdBindPipeline( obj(), VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline.obj() );
+ vkCmdBindPipeline( obj(), VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline.handle() );
}
void VkCommandBufferObj::BindDescriptorSet(VkDescriptorSetObj &descriptorSet)
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index 8ffe9cc..4028578 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -802,6 +802,8 @@
return err;
}
+NON_DISPATCHABLE_HANDLE_DTOR(Pipeline, vkDestroyObject, VK_OBJECT_TYPE_PIPELINE)
+
void Pipeline::init(const Device &dev, const VkGraphicsPipelineCreateInfo &info)
{
VkPipelineCache cache;
@@ -810,8 +812,7 @@
ci.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
VkResult err = vkCreatePipelineCache(dev.handle(), &ci, &cache);
if (err == VK_SUCCESS) {
- DERIVED_OBJECT_TYPE_INIT(vkCreateGraphicsPipelines, dev, VK_OBJECT_TYPE_PIPELINE, cache, 1, &info);
- alloc_memory();
+ NON_DISPATCHABLE_HANDLE_INIT(vkCreateGraphicsPipelines, dev, cache, 1, &info);
vkDestroyPipelineCache(dev.handle(), cache);
}
}
@@ -821,7 +822,6 @@
VkPipeline pipe;
VkPipelineCache cache;
VkPipelineCacheCreateInfo ci;
- dev_ = &dev;
memset((void *) &ci, 0, sizeof(VkPipelineCacheCreateInfo));
ci.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
VkResult err = vkCreatePipelineCache(dev.handle(), &ci, &cache);
@@ -829,8 +829,7 @@
if (err == VK_SUCCESS) {
err = vkCreateGraphicsPipelines(dev.handle(), cache, 1, &info, &pipe);
if (err == VK_SUCCESS) {
- Object::init(pipe, VK_OBJECT_TYPE_PIPELINE);
- alloc_memory();
+ NonDispHandle::init(dev.handle(), pipe);
vkDestroyPipelineCache(dev.handle(), cache);
}
}
@@ -838,7 +837,6 @@
return err;
}
-
void Pipeline::init(const Device &dev, const VkComputePipelineCreateInfo &info)
{
VkPipelineCache cache;
@@ -847,8 +845,7 @@
ci.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
VkResult err = vkCreatePipelineCache(dev.handle(), &ci, &cache);
if (err == VK_SUCCESS) {
- DERIVED_OBJECT_TYPE_INIT(vkCreateComputePipelines, dev, VK_OBJECT_TYPE_PIPELINE, cache, 1, &info);
- alloc_memory();
+ NON_DISPATCHABLE_HANDLE_INIT(vkCreateComputePipelines, dev, cache, 1, &info);
vkDestroyPipelineCache(dev.handle(), cache);
}
}
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 9ba23c4..412525d 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -558,8 +558,10 @@
static VkShaderCreateInfo create_info(VkShaderModule module, const char *pName, VkFlags flags);
};
-class Pipeline : public DerivedObject<VkPipeline, Object, VK_OBJECT_TYPE_PIPELINE> {
+class Pipeline : public internal::NonDispHandle<VkPipeline> {
public:
+ ~Pipeline();
+
// vkCreateGraphicsPipeline()
void init(const Device &dev, const VkGraphicsPipelineCreateInfo &info);
// vkCreateGraphicsPipelineDerivative()