diff --git a/renderdoc/driver/vulkan/wrappers/vk_shader_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_shader_funcs.cpp index abf4b03cd..11916914e 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_shader_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_shader_funcs.cpp @@ -700,6 +700,7 @@ VkShaderModule WrappedVulkan::CreateFakeInlineShaderModule(ResourceId id, VkDevi const VkShaderModuleCreateInfo *pCreateInfo) { RDCASSERT(IsLoading(m_State)); + RDCASSERT(id != ResourceId()); NVAftermath_Shader(ShaderEncoding::SPIRV, pCreateInfo->pCode, pCreateInfo->codeSize); @@ -759,6 +760,8 @@ bool WrappedVulkan::Serialise_vkCreateGraphicsPipelines( else { InlineShaderIDs.resize(CreateInfo.stageCount); + for(ResourceId &id : InlineShaderIDs) + id = ResourceIDGen::GetNewUniqueID(); } SERIALISE_CHECK_READ_ERRORS(); @@ -1127,6 +1130,10 @@ bool WrappedVulkan::Serialise_vkCreateComputePipelines(SerialiserType &ser, VkDe { SERIALISE_ELEMENT(InlineShaderID).Hidden(); } + else + { + InlineShaderID = ResourceIDGen::GetNewUniqueID(); + } SERIALISE_CHECK_READ_ERRORS();