Handle basePipelineIndex correctly (-1 means don't use it)

This commit is contained in:
baldurk
2016-02-07 18:50:25 +01:00
parent 73818e2f87
commit 9fc96e398a
2 changed files with 14 additions and 2 deletions
+1 -1
View File
@@ -875,7 +875,7 @@ VulkanDebugManager::VulkanDebugManager(WrappedVulkan *driver, VkDevice dev)
RGBA8RP,
0, // sub pass
VK_NULL_HANDLE, // base pipeline handle
0, // base pipeline index
-1, // base pipeline index
};
stages[0].module = Unwrap(module[BLITVS]);
@@ -401,9 +401,21 @@ VkResult WrappedVulkan::vkCreateGraphicsPipelines(
{
CACHE_THREAD_SERIALISER();
VkGraphicsPipelineCreateInfo modifiedCreateInfo;
const VkGraphicsPipelineCreateInfo *createInfo = &pCreateInfos[i];
// since we serialise one by one, we need to fixup basePipelineIndex
if(createInfo->basePipelineIndex != -1 && createInfo->basePipelineIndex < (int)i)
{
modifiedCreateInfo = *createInfo;
modifiedCreateInfo.basePipelineHandle = pPipelines[modifiedCreateInfo.basePipelineIndex];
modifiedCreateInfo.basePipelineIndex = -1;
createInfo = &modifiedCreateInfo;
}
SCOPED_SERIALISE_CONTEXT(CREATE_GRAPHICS_PIPE);
Serialise_vkCreateGraphicsPipelines(localSerialiser, device, pipelineCache, 1, &pCreateInfos[i], NULL, &pPipelines[i]);
Serialise_vkCreateGraphicsPipelines(localSerialiser, device, pipelineCache, 1, createInfo, NULL, &pPipelines[i]);
chunk = scope.Get();
}