diff --git a/renderdoc/driver/vulkan/vk_info.cpp b/renderdoc/driver/vulkan/vk_info.cpp index 62409788b..0ad28e1d0 100644 --- a/renderdoc/driver/vulkan/vk_info.cpp +++ b/renderdoc/driver/vulkan/vk_info.cpp @@ -356,6 +356,8 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, { flags = pCreateInfo->flags; + graphicsPipe = true; + layout = GetResID(pCreateInfo->layout); renderpass = GetResID(pCreateInfo->renderPass); subpass = pCreateInfo->subpass; @@ -741,6 +743,8 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, Vulk { flags = pCreateInfo->flags; + graphicsPipe = false; + layout = GetResID(pCreateInfo->layout); // need to figure out which states are valid to be NULL diff --git a/renderdoc/driver/vulkan/vk_info.h b/renderdoc/driver/vulkan/vk_info.h index 9fc4abf85..9fb96ea2d 100644 --- a/renderdoc/driver/vulkan/vk_info.h +++ b/renderdoc/driver/vulkan/vk_info.h @@ -252,6 +252,8 @@ struct VulkanCreationInfo void Init(VulkanResourceManager *resourceMan, VulkanCreationInfo &info, ResourceId id, const VkComputePipelineCreateInfo *pCreateInfo); + bool graphicsPipe = false; + ResourceId layout; ResourceId renderpass; uint32_t subpass; diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 5f2675575..78f3f1af5 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -4253,7 +4253,8 @@ void VulkanReplay::RefreshDerivedReplacements() { VkPipeline pipe = VK_NULL_HANDLE; - if(pipeInfo.renderpass != ResourceId()) // check if this is a graphics or compute pipeline + // check if this is a graphics or compute pipeline + if(pipeInfo.graphicsPipe) { VkGraphicsPipelineCreateInfo pipeCreateInfo; m_pDriver->GetShaderCache()->MakeGraphicsPipelineInfo(pipeCreateInfo, it->first);