X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fpipelinecache.cpp;h=0ec5fcc78fbd12f7e8a2a693ae07fd6bbadf64b5;hp=951d33f3bea801fe72a2516dd984edbd1e50a669;hb=cebf1330ef6773b7b4496dc279ec02a7ca4351bb;hpb=2a70fecfbbe8708be2bdaa75d222dd5a889a8ed3 diff --git a/source/backends/vulkan/pipelinecache.cpp b/source/backends/vulkan/pipelinecache.cpp index 951d33f3..0ec5fcc7 100644 --- a/source/backends/vulkan/pipelinecache.cpp +++ b/source/backends/vulkan/pipelinecache.cpp @@ -55,10 +55,19 @@ VkPipeline PipelineCache::get_pipeline(const PipelineState &ps) vector buffer; ps.fill_creation_info(buffer); - const VkGraphicsPipelineCreateInfo *creation_info = reinterpret_cast(buffer.data()); + VkStructureType type = *reinterpret_cast(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(buffer.data()); + vk.CreateComputePipelines(0, 1, creation_info, &pipeline); + } + else + { + const VkGraphicsPipelineCreateInfo *creation_info = reinterpret_cast(buffer.data()); + vk.CreateGraphicsPipelines(0, 1, creation_info, &pipeline); + } pipelines.insert(make_pair(key, pipeline));