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));