baldurk / renderdoc

RenderDoc is a stand-alone graphics debugging tool.
https://renderdoc.org
MIT License
8.86k stars 1.33k forks source link

error with Linux->Windows remote capture #426

Closed jonlm closed 7 years ago

jonlm commented 7 years ago

Using latest git source as of this moment. Trying remote capture from Linux to Windows. If I run the capture directly on Linux and copy the rdc file to Windows it loads fine. If I use remote capture it saves the rdc ok and nearly finishes loading after I double click on the session but then dumps to VS with this traceback:

renderdoc.dll!Serialiser::Serialise(const char name, D3D12PipelineState & el) Line 500 C++ renderdoc.dll!ReplayProxy::SavePipelineState() Line 2115 C++ renderdoc.dll!ReplayRenderer::FetchPipelineState() Line 1607 C++ renderdoc.dll!ReplayRenderer::PostCreateInit(IReplayDriver device) Line 1573 C++ renderdoc.dll!ReplayRenderer::SetDevice(IReplayDriver device) Line 1558 C++ renderdoc.dll!RemoteServer::OpenCapture(unsigned int proxyid, const char filename, float progress, ReplayRenderer rend) Line 1078 C++ renderdoc.dll!RemoteServer_OpenCapture(RemoteServer remote, unsigned int proxyid, const char logfile, float progress, ReplayRenderer rend) Line 1208 C++ [External Code] renderdocui.exe!renderdoc.RemoteServer.OpenCapture(int proxyid, string logfile, ref float progress) Line 1114 C# renderdocui.exe!renderdocui.Code.RenderManager.CreateReplayRenderer() Line 512 C# renderdocui.exe!renderdocui.Code.RenderManager.RunThread() Line 529 C# [External Code]

jonlm commented 7 years ago

Er, looks like this is just a VS-specific issue. If I hit Continue it finishes loading OK, and if I run the UI outside of VS it's fine. I guess it's just confusing that it stops if you are running in VS.

baldurk commented 7 years ago

Right, if you look at the source at that point:

template <>
void Serialiser::Serialise(const char *name, D3D12PipelineState &el)
{
  RDCUNIMPLEMENTED("Serialiser::Serialise<D3D12PipelineState>()");
}

It's just marking that the serialising of the D3D12 pipeline state isn't implemented yet. The macro checks to see if a debugger is attached, and if it is it debugbreaks otherwise it's silent. If you're running locally you can comment out the code or something. The same happens for error prints, failed assertions, etc.

I should probably just implement that function. It won't take long.