From a854fbcc5a53ff2f2d16e0c8df341da3fa290097 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 11 Sep 2014 19:56:10 +0100 Subject: [PATCH] Update replay proxy serialisation functions for new members --- renderdoc/core/replay_proxy.cpp | 36 +++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/renderdoc/core/replay_proxy.cpp b/renderdoc/core/replay_proxy.cpp index e9286c9c9..d664e390a 100644 --- a/renderdoc/core/replay_proxy.cpp +++ b/renderdoc/core/replay_proxy.cpp @@ -78,6 +78,20 @@ void Serialiser::Serialise(const char *name, ResourceFormat &el) Serialise("", el.srgbCorrected); } +template<> +void Serialiser::Serialise(const char *name, BindpointMap &el) +{ + Serialise("", el.bind); + Serialise("", el.used); +} + +template<> +void Serialiser::Serialise(const char *name, ShaderBindpointMapping &el) +{ + Serialise("", el.ConstantBlocks); + Serialise("", el.Resources); +} + template<> void Serialiser::Serialise(const char *name, D3D11PipelineState::InputAssembler::LayoutInput &el) { @@ -146,9 +160,13 @@ void Serialiser::Serialise(const char *name, D3D11PipelineState::ShaderStage &el { Serialise("", el.Shader); Serialise("", el.stage); + Serialise("", el.ShaderName); + Serialise("", el.customName); if(m_Mode == READING) el.ShaderDetails = NULL; + + Serialise("", el.BindpointMapping); Serialise("", el.SRVs); Serialise("", el.UAVs); @@ -539,6 +557,10 @@ template<> void Serialiser::Serialise(const char *name, PixelModification &el) { Serialise("", el.eventID); + + Serialise("", el.uavWrite); + Serialise("", el.fragIndex); + Serialise("", el.primitiveID); Serialise<4>("", el.preMod.col.value_u); Serialise("", el.preMod.depth); @@ -565,6 +587,16 @@ void Serialiser::Serialise(const char *name, ShaderDebugState &el) Serialise("", el.registers); Serialise("", el.outputs); Serialise("", el.nextInstruction); + + vector< vector > indexableTemps; + + int32_t numidxtemps = el.indexableTemps.count; + Serialise("", numidxtemps); + + if(m_Mode == READING) create_array_uninit(el.indexableTemps, numidxtemps); + + for(int32_t i=0; i < numidxtemps; i++) + Serialise("", el.indexableTemps[i]); } template<> @@ -1198,7 +1230,7 @@ byte *ProxySerialiser::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_ { byte *data = m_Remote->GetTextureData(tex, arrayIdx, mip, dataSize); - byte *compressed = new byte[dataSize+64]; + byte *compressed = new byte[dataSize+512]; size_t compressedSize = (size_t)LZ4_compress((const char *)data, (char *)compressed, (int)dataSize); @@ -1219,7 +1251,7 @@ byte *ProxySerialiser::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_ m_FromReplaySerialiser->Serialise("", dataSize); m_FromReplaySerialiser->Serialise("", compressedSize); - byte *ret = new byte[dataSize+64]; + byte *ret = new byte[dataSize+512]; byte *compressed = (byte *)m_FromReplaySerialiser->RawReadBytes(compressedSize);