vector<char> buffer;
rp.fill_creation_info(buffer);
- const VkRenderPassCreateInfo *creation_info = reinterpret_cast<const VkRenderPassCreateInfo *>(buffer.data());
+ const VkRenderPassCreateInfo2 *creation_info = reinterpret_cast<const VkRenderPassCreateInfo2 *>(buffer.data());
VkRenderPass render_pass;
- vk.CreateRenderPass(*creation_info, render_pass);
+ vk.CreateRenderPass2(*creation_info, render_pass);
render_passes.insert(make_pair(key, render_pass));
vector<char> buffer;
ps.fill_creation_info(buffer);
- const VkGraphicsPipelineCreateInfo *creation_info = reinterpret_cast<const VkGraphicsPipelineCreateInfo *>(buffer.data());
+ VkStructureType type = *reinterpret_cast<const VkStructureType *>(buffer.data());
VkPipeline pipeline;
- vk.CreateGraphicsPipelines(0, 1, creation_info, &pipeline);
+ if(type==VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)
+ {
+ const VkComputePipelineCreateInfo *creation_info = reinterpret_cast<const VkComputePipelineCreateInfo *>(buffer.data());
+ vk.CreateComputePipelines(0, 1, creation_info, &pipeline);
+ }
+ else
+ {
+ const VkGraphicsPipelineCreateInfo *creation_info = reinterpret_cast<const VkGraphicsPipelineCreateInfo *>(buffer.data());
+ vk.CreateGraphicsPipelines(0, 1, creation_info, &pipeline);
+ }
pipelines.insert(make_pair(key, pipeline));