diff --git a/renderdoc/driver/vulkan/vk_initstate.cpp b/renderdoc/driver/vulkan/vk_initstate.cpp index 2aa2de2c6..3a733b989 100644 --- a/renderdoc/driver/vulkan/vk_initstate.cpp +++ b/renderdoc/driver/vulkan/vk_initstate.cpp @@ -708,6 +708,8 @@ bool WrappedVulkan::Serialise_InitialState(SerialiserType &ser, ResourceId id, W uint32_t descriptorCount = layout.bindings[j].descriptorCount; + ResourceId *immutableSamplers = layout.bindings[j].immutableSampler; + DescriptorSetSlot *src = srcData; srcData += descriptorCount; @@ -753,6 +755,13 @@ bool WrappedVulkan::Serialise_InitialState(SerialiserType &ser, ResourceId id, W for(uint32_t d = 0; d < descriptorCount; d++) dstImage[d] = src[d].imageInfo; + if(immutableSamplers) + { + for(uint32_t d = 0; d < descriptorCount; d++) + dstImage[d].sampler = + GetResourceManager()->GetCurrentHandle(immutableSamplers[d]); + } + writes[bind].pImageInfo = dstImage; // NULL the others dstBuffer = NULL;