From e734cfe077f41ccc798a2bde4149365ecc49347a Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 28 Oct 2020 14:50:17 +0000 Subject: [PATCH] Fix lazy generator not storing string database and user data * We need this to properly serialise on some drivers. --- renderdoc/serialise/serialiser.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/renderdoc/serialise/serialiser.h b/renderdoc/serialise/serialiser.h index 0dcd276a1..fafccfae4 100644 --- a/renderdoc/serialise/serialiser.h +++ b/renderdoc/serialise/serialiser.h @@ -1328,7 +1328,10 @@ private: LazyGenerator MakeLazySerialiser() { ChunkLookup lookup = m_ChunkLookup; - return [lookup](const void *ptr) { + void *userData = m_pUserData; + bool buffers = m_ExportBuffers; + std::set *stringDB = m_ExtStringDB; + return [lookup, userData, buffers, stringDB](const void *ptr) { T &input = *(T *)ptr; static StreamReader dummy(StreamReader::DummyStream); @@ -1340,9 +1343,11 @@ private: Serialiser ser(&dummy, Ownership::Nothing, ret); - ser.ConfigureStructuredExport(lookup, false, 0, 1.0); + ser.ConfigureStructuredExport(lookup, buffers, 0, 1.0); ser.SetStreamingMode(true); ser.SetDummy(true); + ser.SetUserData(userData); + ser.SetStringDatabase(stringDB); SerialiseDispatch, T>::Do(ser, input);