If I understand correctly, vkMergePipelineCaches is useful because it allows us to merge caches created from multiple threads into a single one, and then save that on disk. However, I fail to see how to create these multiple caches once the application is restarted. All I have on disk is the merged cache, so do I need to point to that same big cache on each vkCreatePipelineCache call (one per thread)?

If I'm supposed to save each cache separately, then what is the purpose of vkMergePipelineCaches?

Thanks