diff --git a/renderdoc/driver/vulkan/vk_info.cpp b/renderdoc/driver/vulkan/vk_info.cpp index 11f37487f..feea88559 100644 --- a/renderdoc/driver/vulkan/vk_info.cpp +++ b/renderdoc/driver/vulkan/vk_info.cpp @@ -1158,6 +1158,7 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, shad.module = shadid; shad.entryPoint = pCreateInfo->pStages[i].pName; shad.stage = ShaderStage(stageIndex); + shad.flags = pCreateInfo->pStages[i].flags; ShaderModuleReflectionKey key(shad.stage, shad.entryPoint, ResourceId()); @@ -1784,6 +1785,7 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, Vulk shad.module = shadid; shad.entryPoint = pCreateInfo->stage.pName; shad.stage = ShaderStage::Compute; + shad.flags = pCreateInfo->stage.flags; ShaderModuleReflectionKey key(ShaderStage::Compute, shad.entryPoint, ResourceId()); diff --git a/renderdoc/driver/vulkan/vk_info.h b/renderdoc/driver/vulkan/vk_info.h index 84664bb24..5ca62577d 100644 --- a/renderdoc/driver/vulkan/vk_info.h +++ b/renderdoc/driver/vulkan/vk_info.h @@ -240,6 +240,8 @@ struct VulkanCreationInfo ShaderReflection *refl = NULL; SPIRVPatchData *patchData = NULL; + VkPipelineShaderStageCreateFlags flags; + rdcarray specialization; // VkPipelineShaderStageRequiredSubgroupSizeCreateInfo diff --git a/renderdoc/driver/vulkan/vk_shader_cache.cpp b/renderdoc/driver/vulkan/vk_shader_cache.cpp index bcc06e0d2..7c7720693 100644 --- a/renderdoc/driver/vulkan/vk_shader_cache.cpp +++ b/renderdoc/driver/vulkan/vk_shader_cache.cpp @@ -608,6 +608,7 @@ void VulkanShaderCache::MakeGraphicsPipelineInfo(VkGraphicsPipelineCreateInfo &p stages[stageCount].pName = pipeInfo.shaders[i].entryPoint.c_str(); stages[stageCount].pNext = NULL; stages[stageCount].pSpecializationInfo = NULL; + stages[stageCount].flags = pipeInfo.shaders[i].flags; if(pipeInfo.shaders[i].requiredSubgroupSize != 0) { @@ -1081,7 +1082,7 @@ void VulkanShaderCache::MakeComputePipelineInfo(VkComputePipelineCreateInfo &pip stage.pName = pipeInfo.shaders[i].entryPoint.c_str(); stage.pNext = NULL; stage.pSpecializationInfo = NULL; - stage.flags = 0; + stage.flags = pipeInfo.shaders[i].flags; uint32_t dataOffset = 0;