Rename replay proxy and remote server packet enums, and disallow overlap

This commit is contained in:
baldurk
2016-08-02 16:30:06 +02:00
parent 5ed6ee2938
commit 892004f064
3 changed files with 139 additions and 131 deletions
+20 -16
View File
@@ -35,15 +35,19 @@
using std::pair;
enum PacketType
enum RemoteServerPacket
{
ePacket_Noop,
ePacket_RemoteDriverList,
ePacket_CopyCapture,
ePacket_LogOpenProgress,
ePacket_LogReady,
eRemoteServer_Noop,
eRemoteServer_RemoteDriverList,
eRemoteServer_CopyCapture,
eRemoteServer_LogOpenProgress,
eRemoteServer_LogReady,
eRemoteServer_RemoteServerCount,
};
RDCCOMPILE_ASSERT((int)eRemoteServer_RemoteServerCount < (int)eReplayProxy_First,
"Remote server and Replay Proxy packets overlap");
struct ProgressLoopData
{
Network::Socket *sock;
@@ -62,7 +66,7 @@ static void ProgressTicker(void *d)
ser.Rewind();
ser.Serialise("", data->progress);
if(!SendPacket(data->sock, ePacket_LogOpenProgress, ser))
if(!SendPacket(data->sock, eRemoteServer_LogOpenProgress, ser))
{
SAFE_DELETE(data->sock);
break;
@@ -221,7 +225,7 @@ void RenderDoc::BecomeRemoteServer(const char *listenhost, uint16_t port, volati
ser.Serialise("", (*it).second);
}
if(!SendPacket(client, ePacket_RemoteDriverList, ser))
if(!SendPacket(client, eRemoteServer_RemoteDriverList, ser))
{
RDCERR("Network error sending supported driver list");
SAFE_DELETE(client);
@@ -246,7 +250,7 @@ void RenderDoc::BecomeRemoteServer(const char *listenhost, uint16_t port, volati
Serialiser *fileRecv = NULL;
if(!RecvChunkedFile(client, ePacket_CopyCapture, cap_file.c_str(), fileRecv, NULL))
if(!RecvChunkedFile(client, eRemoteServer_CopyCapture, cap_file.c_str(), fileRecv, NULL))
{
FileIO::Delete(cap_file.c_str());
@@ -298,7 +302,7 @@ void RenderDoc::BecomeRemoteServer(const char *listenhost, uint16_t port, volati
FileIO::Delete(cap_file.c_str());
SendPacket(client, ePacket_LogReady);
SendPacket(client, eRemoteServer_LogReady);
ProxySerialiser *proxy = new ProxySerialiser(client, driver);
@@ -342,7 +346,7 @@ public:
m_Proxies.push_back(*it);
{
PacketType type;
RemoteServerPacket type;
Serialiser *ser = NULL;
GetPacket(type, &ser);
@@ -422,7 +426,7 @@ public:
Serialiser ser("", Serialiser::WRITING, false);
if(!SendChunkedFile(m_Socket, ePacket_CopyCapture, logfile, ser, progress))
if(!SendChunkedFile(m_Socket, eRemoteServer_CopyCapture, logfile, ser, progress))
{
SAFE_DELETE(m_Socket);
return eReplayCreate_NetworkIOFailed;
@@ -430,13 +434,13 @@ public:
RDCLOG("Sent file to replay host. Loading...");
PacketType type = ePacket_Noop;
RemoteServerPacket type = eRemoteServer_Noop;
while(m_Socket)
{
Serialiser *progressSer;
GetPacket(type, &progressSer);
if(!m_Socket || type != ePacket_LogOpenProgress)
if(!m_Socket || type != eRemoteServer_LogOpenProgress)
break;
progressSer->Serialise("", *progress);
@@ -444,7 +448,7 @@ public:
RDCLOG("% 3.0f%%...", (*progress) * 100.0f);
}
if(!m_Socket || type != ePacket_LogReady)
if(!m_Socket || type != eRemoteServer_LogReady)
return eReplayCreate_NetworkIOFailed;
*progress = 1.0f;
@@ -483,7 +487,7 @@ public:
private:
Network::Socket *m_Socket;
void GetPacket(PacketType &type, Serialiser **ser)
void GetPacket(RemoteServerPacket &type, Serialiser **ser)
{
vector<byte> payload;
+76 -76
View File
@@ -1679,7 +1679,7 @@ ProxySerialiser::~ProxySerialiser()
delete it->second;
}
bool ProxySerialiser::SendReplayCommand(CommandPacketType type)
bool ProxySerialiser::SendReplayCommand(ReplayProxyPacket type)
{
if(!SendPacket(m_Socket, type, *m_ToReplaySerialiser))
return false;
@@ -1753,7 +1753,7 @@ bool ProxySerialiser::Tick()
if(!m_Socket)
return false;
CommandPacketType type;
ReplayProxyPacket type;
if(!RecvPacket(m_Socket, type, &m_ToReplaySerialiser))
return false;
@@ -1762,80 +1762,80 @@ bool ProxySerialiser::Tick()
switch(type)
{
case eCommand_SetCtxFilter: SetContextFilter(ResourceId(), 0, 0); break;
case eCommand_ReplayLog: ReplayLog(0, (ReplayLogType)0); break;
case eCommand_GetPassEvents: GetPassEvents(0); break;
case eCommand_GetAPIProperties: GetAPIProperties(); break;
case eCommand_GetTextures: GetTextures(); break;
case eCommand_GetTexture: GetTexture(ResourceId()); break;
case eCommand_GetBuffers: GetBuffers(); break;
case eCommand_GetBuffer: GetBuffer(ResourceId()); break;
case eCommand_GetShader: GetShader(ResourceId(), ""); break;
case eCommand_GetDebugMessages: GetDebugMessages(); break;
case eCommand_SavePipelineState: SavePipelineState(); break;
case eCommand_GetUsage: GetUsage(ResourceId()); break;
case eCommand_GetLiveID: GetLiveID(ResourceId()); break;
case eCommand_GetFrameRecord: GetFrameRecord(); break;
case eCommand_IsRenderOutput: IsRenderOutput(ResourceId()); break;
case eCommand_HasResolver: HasCallstacks(); break;
case eCommand_InitStackResolver: InitCallstackResolver(); break;
case eCommand_HasStackResolver: GetCallstackResolver(); break;
case eCommand_GetAddressDetails: GetAddr(0); break;
case eCommand_FreeResource: FreeTargetResource(ResourceId()); break;
case eCommand_FetchCounters:
case eReplayProxy_SetCtxFilter: SetContextFilter(ResourceId(), 0, 0); break;
case eReplayProxy_ReplayLog: ReplayLog(0, (ReplayLogType)0); break;
case eReplayProxy_GetPassEvents: GetPassEvents(0); break;
case eReplayProxy_GetAPIProperties: GetAPIProperties(); break;
case eReplayProxy_GetTextures: GetTextures(); break;
case eReplayProxy_GetTexture: GetTexture(ResourceId()); break;
case eReplayProxy_GetBuffers: GetBuffers(); break;
case eReplayProxy_GetBuffer: GetBuffer(ResourceId()); break;
case eReplayProxy_GetShader: GetShader(ResourceId(), ""); break;
case eReplayProxy_GetDebugMessages: GetDebugMessages(); break;
case eReplayProxy_SavePipelineState: SavePipelineState(); break;
case eReplayProxy_GetUsage: GetUsage(ResourceId()); break;
case eReplayProxy_GetLiveID: GetLiveID(ResourceId()); break;
case eReplayProxy_GetFrameRecord: GetFrameRecord(); break;
case eReplayProxy_IsRenderOutput: IsRenderOutput(ResourceId()); break;
case eReplayProxy_HasResolver: HasCallstacks(); break;
case eReplayProxy_InitStackResolver: InitCallstackResolver(); break;
case eReplayProxy_HasStackResolver: GetCallstackResolver(); break;
case eReplayProxy_GetAddressDetails: GetAddr(0); break;
case eReplayProxy_FreeResource: FreeTargetResource(ResourceId()); break;
case eReplayProxy_FetchCounters:
{
vector<uint32_t> counters;
FetchCounters(counters);
break;
}
case eCommand_EnumerateCounters: EnumerateCounters(); break;
case eCommand_DescribeCounter:
case eReplayProxy_EnumerateCounters: EnumerateCounters(); break;
case eReplayProxy_DescribeCounter:
{
CounterDescription desc;
DescribeCounter(0, desc);
break;
}
case eCommand_FillCBufferVariables:
case eReplayProxy_FillCBufferVariables:
{
vector<ShaderVariable> vars;
vector<byte> data;
FillCBufferVariables(ResourceId(), "", 0, vars, data);
break;
}
case eCommand_GetBufferData:
case eReplayProxy_GetBufferData:
{
vector<byte> dummy;
GetBufferData(ResourceId(), 0, 0, dummy);
break;
}
case eCommand_GetTextureData:
case eReplayProxy_GetTextureData:
{
size_t dummy;
GetTextureData(ResourceId(), 0, 0, eCompType_None, false, false, 0.0f, 0.0f, dummy);
break;
}
case eCommand_InitPostVS: InitPostVSBuffers(0); break;
case eCommand_InitPostVSVec:
case eReplayProxy_InitPostVS: InitPostVSBuffers(0); break;
case eReplayProxy_InitPostVSVec:
{
vector<uint32_t> dummy;
InitPostVSBuffers(dummy);
break;
}
case eCommand_GetPostVS: GetPostVSBuffers(0, 0, eMeshDataStage_Unknown); break;
case eCommand_BuildTargetShader:
case eReplayProxy_GetPostVS: GetPostVSBuffers(0, 0, eMeshDataStage_Unknown); break;
case eReplayProxy_BuildTargetShader:
BuildTargetShader("", "", 0, eShaderStage_Vertex, NULL, NULL);
break;
case eCommand_ReplaceResource: ReplaceResource(ResourceId(), ResourceId()); break;
case eCommand_RemoveReplacement: RemoveReplacement(ResourceId()); break;
case eCommand_RenderOverlay:
case eReplayProxy_ReplaceResource: ReplaceResource(ResourceId(), ResourceId()); break;
case eReplayProxy_RemoveReplacement: RemoveReplacement(ResourceId()); break;
case eReplayProxy_RenderOverlay:
RenderOverlay(ResourceId(), eCompType_None, eTexOverlay_None, 0, vector<uint32_t>());
break;
case eCommand_PixelHistory:
case eReplayProxy_PixelHistory:
PixelHistory(vector<EventUsage>(), ResourceId(), 0, 0, 0, 0, 0, eCompType_None);
break;
case eCommand_DebugVertex: DebugVertex(0, 0, 0, 0, 0, 0); break;
case eCommand_DebugPixel: DebugPixel(0, 0, 0, 0, 0); break;
case eCommand_DebugThread:
case eReplayProxy_DebugVertex: DebugVertex(0, 0, 0, 0, 0, 0); break;
case eReplayProxy_DebugPixel: DebugPixel(0, 0, 0, 0, 0); break;
case eReplayProxy_DebugThread:
{
uint32_t dummy1[3] = {0};
uint32_t dummy2[3] = {0};
@@ -1865,7 +1865,7 @@ bool ProxySerialiser::IsRenderOutput(ResourceId id)
}
else
{
if(!SendReplayCommand(eCommand_IsRenderOutput))
if(!SendReplayCommand(eReplayProxy_IsRenderOutput))
return ret;
}
@@ -1885,7 +1885,7 @@ APIProperties ProxySerialiser::GetAPIProperties()
}
else
{
if(!SendReplayCommand(eCommand_GetAPIProperties))
if(!SendReplayCommand(eReplayProxy_GetAPIProperties))
return ret;
}
@@ -1904,7 +1904,7 @@ vector<ResourceId> ProxySerialiser::GetTextures()
}
else
{
if(!SendReplayCommand(eCommand_GetTextures))
if(!SendReplayCommand(eReplayProxy_GetTextures))
return ret;
}
@@ -1923,7 +1923,7 @@ vector<DebugMessage> ProxySerialiser::GetDebugMessages()
}
else
{
if(!SendReplayCommand(eCommand_GetDebugMessages))
if(!SendReplayCommand(eReplayProxy_GetDebugMessages))
return ret;
}
@@ -1944,7 +1944,7 @@ FetchTexture ProxySerialiser::GetTexture(ResourceId id)
}
else
{
if(!SendReplayCommand(eCommand_GetTexture))
if(!SendReplayCommand(eReplayProxy_GetTexture))
return ret;
}
@@ -1963,7 +1963,7 @@ vector<ResourceId> ProxySerialiser::GetBuffers()
}
else
{
if(!SendReplayCommand(eCommand_GetBuffers))
if(!SendReplayCommand(eReplayProxy_GetBuffers))
return ret;
}
@@ -1984,7 +1984,7 @@ FetchBuffer ProxySerialiser::GetBuffer(ResourceId id)
}
else
{
if(!SendReplayCommand(eCommand_GetBuffer))
if(!SendReplayCommand(eReplayProxy_GetBuffer))
return ret;
}
@@ -2004,7 +2004,7 @@ void ProxySerialiser::SavePipelineState()
}
else
{
if(!SendReplayCommand(eCommand_SavePipelineState))
if(!SendReplayCommand(eReplayProxy_SavePipelineState))
return;
m_D3D11PipelineState = D3D11PipelineState();
@@ -2029,7 +2029,7 @@ void ProxySerialiser::SetContextFilter(ResourceId id, uint32_t firstDefEv, uint3
}
else
{
if(!SendReplayCommand(eCommand_SetCtxFilter))
if(!SendReplayCommand(eReplayProxy_SetCtxFilter))
return;
}
}
@@ -2045,7 +2045,7 @@ void ProxySerialiser::ReplayLog(uint32_t endEventID, ReplayLogType replayType)
}
else
{
if(!SendReplayCommand(eCommand_ReplayLog))
if(!SendReplayCommand(eReplayProxy_ReplayLog))
return;
m_TextureProxyCache.clear();
@@ -2065,7 +2065,7 @@ vector<uint32_t> ProxySerialiser::GetPassEvents(uint32_t eventID)
}
else
{
if(!SendReplayCommand(eCommand_GetPassEvents))
if(!SendReplayCommand(eReplayProxy_GetPassEvents))
return ret;
}
@@ -2086,7 +2086,7 @@ vector<EventUsage> ProxySerialiser::GetUsage(ResourceId id)
}
else
{
if(!SendReplayCommand(eCommand_GetUsage))
if(!SendReplayCommand(eReplayProxy_GetUsage))
return ret;
}
@@ -2105,7 +2105,7 @@ FetchFrameRecord ProxySerialiser::GetFrameRecord()
}
else
{
if(!SendReplayCommand(eCommand_GetFrameRecord))
if(!SendReplayCommand(eReplayProxy_GetFrameRecord))
return ret;
}
@@ -2126,7 +2126,7 @@ bool ProxySerialiser::HasCallstacks()
}
else
{
if(!SendReplayCommand(eCommand_HasResolver))
if(!SendReplayCommand(eReplayProxy_HasResolver))
return ret;
}
@@ -2157,7 +2157,7 @@ ResourceId ProxySerialiser::GetLiveID(ResourceId id)
}
else
{
if(!SendReplayCommand(eCommand_GetLiveID))
if(!SendReplayCommand(eReplayProxy_GetLiveID))
return ret;
}
@@ -2183,7 +2183,7 @@ vector<CounterResult> ProxySerialiser::FetchCounters(const vector<uint32_t> &cou
}
else
{
if(!SendReplayCommand(eCommand_FetchCounters))
if(!SendReplayCommand(eReplayProxy_FetchCounters))
return ret;
}
@@ -2202,7 +2202,7 @@ vector<uint32_t> ProxySerialiser::EnumerateCounters()
}
else
{
if(!SendReplayCommand(eCommand_EnumerateCounters))
if(!SendReplayCommand(eReplayProxy_EnumerateCounters))
return ret;
}
@@ -2221,7 +2221,7 @@ void ProxySerialiser::DescribeCounter(uint32_t counterID, CounterDescription &de
}
else
{
if(!SendReplayCommand(eCommand_DescribeCounter))
if(!SendReplayCommand(eReplayProxy_DescribeCounter))
return;
}
@@ -2245,7 +2245,7 @@ void ProxySerialiser::FillCBufferVariables(ResourceId shader, string entryPoint,
}
else
{
if(!SendReplayCommand(eCommand_FillCBufferVariables))
if(!SendReplayCommand(eReplayProxy_FillCBufferVariables))
return;
}
@@ -2271,7 +2271,7 @@ void ProxySerialiser::GetBufferData(ResourceId buff, uint64_t offset, uint64_t l
}
else
{
if(!SendReplayCommand(eCommand_GetBufferData))
if(!SendReplayCommand(eReplayProxy_GetBufferData))
return;
size_t sz = 0;
@@ -2314,7 +2314,7 @@ byte *ProxySerialiser::GetTextureData(ResourceId tex, uint32_t arrayIdx, uint32_
}
else
{
if(!SendReplayCommand(eCommand_GetTextureData))
if(!SendReplayCommand(eReplayProxy_GetTextureData))
return NULL;
size_t compressedSize;
@@ -2344,7 +2344,7 @@ void ProxySerialiser::InitPostVSBuffers(uint32_t eventID)
}
else
{
if(!SendReplayCommand(eCommand_InitPostVS))
if(!SendReplayCommand(eReplayProxy_InitPostVS))
return;
}
}
@@ -2359,7 +2359,7 @@ void ProxySerialiser::InitPostVSBuffers(const vector<uint32_t> &events)
}
else
{
if(!SendReplayCommand(eCommand_InitPostVSVec))
if(!SendReplayCommand(eReplayProxy_InitPostVSVec))
return;
}
}
@@ -2378,7 +2378,7 @@ MeshFormat ProxySerialiser::GetPostVSBuffers(uint32_t eventID, uint32_t instID,
}
else
{
if(!SendReplayCommand(eCommand_GetPostVS))
if(!SendReplayCommand(eReplayProxy_GetPostVS))
return ret;
}
@@ -2407,7 +2407,7 @@ ResourceId ProxySerialiser::RenderOverlay(ResourceId texid, FormatComponentType
}
else
{
if(!SendReplayCommand(eCommand_RenderOverlay))
if(!SendReplayCommand(eReplayProxy_RenderOverlay))
return ret;
}
@@ -2441,7 +2441,7 @@ ShaderReflection *ProxySerialiser::GetShader(ResourceId id, string entryPoint)
m_ToReplaySerialiser->Serialise("", id);
m_ToReplaySerialiser->Serialise("", entryPoint);
if(!SendReplayCommand(eCommand_GetShader))
if(!SendReplayCommand(eReplayProxy_GetShader))
return NULL;
bool hasrefl = false;
@@ -2472,7 +2472,7 @@ void ProxySerialiser::FreeTargetResource(ResourceId id)
}
else
{
if(!SendReplayCommand(eCommand_FreeResource))
if(!SendReplayCommand(eReplayProxy_FreeResource))
return;
}
}
@@ -2485,7 +2485,7 @@ void ProxySerialiser::InitCallstackResolver()
}
else
{
if(!SendReplayCommand(eCommand_InitStackResolver))
if(!SendReplayCommand(eReplayProxy_InitStackResolver))
return;
}
}
@@ -2503,7 +2503,7 @@ Callstack::StackResolver *ProxySerialiser::GetCallstackResolver()
}
else
{
if(!SendReplayCommand(eCommand_HasStackResolver))
if(!SendReplayCommand(eReplayProxy_HasStackResolver))
return NULL;
}
@@ -2532,7 +2532,7 @@ Callstack::AddressDetails ProxySerialiser::GetAddr(uint64_t addr)
}
else
{
if(!SendReplayCommand(eCommand_HasStackResolver))
if(!SendReplayCommand(eReplayProxy_HasStackResolver))
return ret;
}
@@ -2561,7 +2561,7 @@ void ProxySerialiser::BuildTargetShader(string source, string entry, const uint3
}
else
{
if(!SendReplayCommand(eCommand_BuildTargetShader))
if(!SendReplayCommand(eReplayProxy_BuildTargetShader))
return;
}
@@ -2588,7 +2588,7 @@ void ProxySerialiser::ReplaceResource(ResourceId from, ResourceId to)
}
else
{
if(!SendReplayCommand(eCommand_ReplaceResource))
if(!SendReplayCommand(eReplayProxy_ReplaceResource))
return;
}
}
@@ -2603,7 +2603,7 @@ void ProxySerialiser::RemoveReplacement(ResourceId id)
}
else
{
if(!SendReplayCommand(eCommand_RemoveReplacement))
if(!SendReplayCommand(eReplayProxy_RemoveReplacement))
return;
}
}
@@ -2630,7 +2630,7 @@ vector<PixelModification> ProxySerialiser::PixelHistory(vector<EventUsage> event
}
else
{
if(!SendReplayCommand(eCommand_PixelHistory))
if(!SendReplayCommand(eReplayProxy_PixelHistory))
return ret;
}
@@ -2657,7 +2657,7 @@ ShaderDebugTrace ProxySerialiser::DebugVertex(uint32_t eventID, uint32_t vertid,
}
else
{
if(!SendReplayCommand(eCommand_DebugVertex))
if(!SendReplayCommand(eReplayProxy_DebugVertex))
return ret;
}
@@ -2683,7 +2683,7 @@ ShaderDebugTrace ProxySerialiser::DebugPixel(uint32_t eventID, uint32_t x, uint3
}
else
{
if(!SendReplayCommand(eCommand_DebugPixel))
if(!SendReplayCommand(eReplayProxy_DebugPixel))
return ret;
}
@@ -2707,7 +2707,7 @@ ShaderDebugTrace ProxySerialiser::DebugThread(uint32_t eventID, uint32_t groupid
}
else
{
if(!SendReplayCommand(eCommand_DebugThread))
if(!SendReplayCommand(eReplayProxy_DebugThread))
return ret;
}
+43 -39
View File
@@ -30,58 +30,62 @@
#include "serialise/serialiser.h"
#include "socket_helpers.h"
enum CommandPacketType
enum ReplayProxyPacket
{
eCommand_SetCtxFilter,
eCommand_ReplayLog,
// we offset these packet numbers so that it can co-exist
// peacefully with remote server packet numbers
eReplayProxy_First = 0x1000,
eCommand_GetPassEvents,
eReplayProxy_SetCtxFilter = eReplayProxy_First,
eReplayProxy_ReplayLog,
eCommand_GetTextures,
eCommand_GetTexture,
eCommand_GetBuffers,
eCommand_GetBuffer,
eCommand_GetShader,
eCommand_GetDebugMessages,
eReplayProxy_GetPassEvents,
eCommand_GetBufferData,
eCommand_GetTextureData,
eReplayProxy_GetTextures,
eReplayProxy_GetTexture,
eReplayProxy_GetBuffers,
eReplayProxy_GetBuffer,
eReplayProxy_GetShader,
eReplayProxy_GetDebugMessages,
eCommand_SavePipelineState,
eCommand_GetUsage,
eCommand_GetLiveID,
eCommand_GetFrameRecord,
eCommand_IsRenderOutput,
eReplayProxy_GetBufferData,
eReplayProxy_GetTextureData,
eCommand_FreeResource,
eCommand_HasResolver,
eReplayProxy_SavePipelineState,
eReplayProxy_GetUsage,
eReplayProxy_GetLiveID,
eReplayProxy_GetFrameRecord,
eReplayProxy_IsRenderOutput,
eCommand_FetchCounters,
eCommand_EnumerateCounters,
eCommand_DescribeCounter,
eCommand_FillCBufferVariables,
eReplayProxy_FreeResource,
eReplayProxy_HasResolver,
eCommand_InitPostVS,
eCommand_InitPostVSVec,
eCommand_GetPostVS,
eReplayProxy_FetchCounters,
eReplayProxy_EnumerateCounters,
eReplayProxy_DescribeCounter,
eReplayProxy_FillCBufferVariables,
eCommand_InitStackResolver,
eCommand_HasStackResolver,
eCommand_GetAddressDetails,
eReplayProxy_InitPostVS,
eReplayProxy_InitPostVSVec,
eReplayProxy_GetPostVS,
eCommand_BuildTargetShader,
eCommand_ReplaceResource,
eCommand_RemoveReplacement,
eReplayProxy_InitStackResolver,
eReplayProxy_HasStackResolver,
eReplayProxy_GetAddressDetails,
eCommand_DebugVertex,
eCommand_DebugPixel,
eCommand_DebugThread,
eReplayProxy_BuildTargetShader,
eReplayProxy_ReplaceResource,
eReplayProxy_RemoveReplacement,
eCommand_RenderOverlay,
eReplayProxy_DebugVertex,
eReplayProxy_DebugPixel,
eReplayProxy_DebugThread,
eCommand_GetAPIProperties,
eReplayProxy_RenderOverlay,
eCommand_PixelHistory,
eReplayProxy_GetAPIProperties,
eReplayProxy_PixelHistory,
};
// This class implements IReplayDriver and StackResolver. On the local machine where the UI
@@ -435,7 +439,7 @@ public:
}
private:
bool SendReplayCommand(CommandPacketType type);
bool SendReplayCommand(ReplayProxyPacket type);
void EnsureTexCached(ResourceId texid, uint32_t arrayIdx, uint32_t mip);
void EnsureBufCached(ResourceId bufid);