From 8aaa44d624930a852a10d12cb7942765f25cd07a Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 28 Jul 2017 14:48:18 +0100 Subject: [PATCH] Fill out SPIR-V bytes array for compute pipelines --- renderdoc/driver/vulkan/vk_info.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_info.cpp b/renderdoc/driver/vulkan/vk_info.cpp index 5946b1c69..1323209f9 100644 --- a/renderdoc/driver/vulkan/vk_info.cpp +++ b/renderdoc/driver/vulkan/vk_info.cpp @@ -376,11 +376,18 @@ void VulkanCreationInfo::Pipeline::Init(VulkanResourceManager *resourceMan, Vulk if(reflData.entryPoint.empty()) { reflData.entryPoint = shad.entryPoint; - info.m_ShaderModule[id].spirv.MakeReflection(ShaderStage::Compute, reflData.entryPoint, - reflData.refl, reflData.mapping, - reflData.patchData); + SPVModule &spv = info.m_ShaderModule[id].spirv; + spv.MakeReflection(ShaderStage::Compute, reflData.entryPoint, reflData.refl, reflData.mapping, + reflData.patchData); reflData.refl.ID = resourceMan->GetOriginalID(id); reflData.refl.EntryPoint = shad.entryPoint; + + if(!spv.spirv.empty()) + { + rdctype::array &bytes = reflData.refl.RawBytes; + const vector &spirv = spv.spirv; + create_array_init(bytes, spirv.size() * sizeof(uint32_t), (byte *)&spirv[0]); + } } if(pCreateInfo->stage.pSpecializationInfo)