X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fpipelinecache.cpp;h=618ddc9323b68d24678b372648a42ce3ec6530e6;hb=5593d59bfe30fd7eecc55bc3580d87fcb91f0248;hp=951d33f3bea801fe72a2516dd984edbd1e50a669;hpb=d841d557eec57575adc856a8b081042861dab9e8;p=libs%2Fgl.git diff --git a/source/backends/vulkan/pipelinecache.cpp b/source/backends/vulkan/pipelinecache.cpp index 951d33f3..618ddc93 100644 --- a/source/backends/vulkan/pipelinecache.cpp +++ b/source/backends/vulkan/pipelinecache.cpp @@ -34,10 +34,10 @@ VkRenderPass PipelineCache::get_render_pass(const RenderPass &rp) vector buffer; rp.fill_creation_info(buffer); - const VkRenderPassCreateInfo *creation_info = reinterpret_cast(buffer.data()); + const VkRenderPassCreateInfo2 *creation_info = reinterpret_cast(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)); @@ -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));