VkuPipelineGenerator::~VkuPipelineGenerator()
{
+ for(size_t i=0; i<res_layouts.size(); i++) {
+ vkDestroyDescriptorSetLayout(vk_device, res_layouts[i], 0);
+ }
+ vkDestroyPipelineLayout(vk_device, layout, 0);
}
-VkPipeline VkuPipelineGenerator::generate(VkuDynState dyn_flags) const
+VkPipeline VkuPipelineGenerator::generate(VkuDynState dyn_flags)
{
VkPipelineDynamicStateCreateInfo dyni;
memset(&dyni, 0, sizeof dyni);
//linf.pPushConstantRanges = push_const_ranges.data();
//maxPushConstantsSize from VkPhysicalDeviceLimits
- VkPipelineLayout layout;
if(vkCreatePipelineLayout(vk_device, &linf, 0, &layout) != VK_SUCCESS) {
fprintf(stderr, "Failed to create pipeline layout.\n");
return 0;
adsc.binding = binding;
adsc.format = format;
}
+
+void VkuPipelineGenerator::set_resources_layout(VkDescriptorSetLayout layout)
+{
+ res_layouts.push_back(layout);
+}