From e2f7afc3a25b6e6f8ba9a0898280d12f8de49c79 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 2 Mar 2015 11:45:38 +0000 Subject: [PATCH] Make sure Fullscreen VS is also created in capturing program * This shader is necessary for the MSAA-to-array copying functionality used, and without it we bind a NULL vertex shader and can end up with driver crashes. --- renderdoc/driver/d3d11/d3d11_debug.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/d3d11/d3d11_debug.cpp b/renderdoc/driver/d3d11/d3d11_debug.cpp index 9c6664cb1c..db97e99454 100644 --- a/renderdoc/driver/d3d11/d3d11_debug.cpp +++ b/renderdoc/driver/d3d11/d3d11_debug.cpp @@ -766,13 +766,15 @@ bool D3D11DebugManager::InitDebugRendering() m_DebugRender.FloatCopyArrayToMSPS = MakePShader(multisamplehlsl.c_str(), "RENDERDOC_FloatCopyArrayToMS", "ps_5_0"); m_DebugRender.DepthCopyMSToArrayPS = MakePShader(multisamplehlsl.c_str(), "RENDERDOC_DepthCopyMSToArray", "ps_5_0"); m_DebugRender.DepthCopyArrayToMSPS = MakePShader(multisamplehlsl.c_str(), "RENDERDOC_DepthCopyArrayToMS", "ps_5_0"); + + string displayhlsl = GetEmbeddedResource(debugcbuffers_h); + displayhlsl += GetEmbeddedResource(debugcommon_hlsl); + displayhlsl += GetEmbeddedResource(debugdisplay_hlsl); + + m_DebugRender.FullscreenVS = MakeVShader(displayhlsl.c_str(), "RENDERDOC_FullscreenVS", "vs_4_0"); if(RenderDoc::Inst().IsReplayApp()) { - string displayhlsl = GetEmbeddedResource(debugcbuffers_h); - displayhlsl += GetEmbeddedResource(debugcommon_hlsl); - displayhlsl += GetEmbeddedResource(debugdisplay_hlsl); - D3D11_INPUT_ELEMENT_DESC inputDesc; inputDesc.SemanticName = "POSITION"; @@ -821,7 +823,6 @@ bool D3D11DebugManager::InitDebugRendering() memcpy(m_DebugRender.MeshHomogVSBytecode, &bytecode[0], bytecode.size()); m_DebugRender.WireframePS = MakePShader(displayhlsl.c_str(), "RENDERDOC_WireframePS", "ps_4_0"); - m_DebugRender.FullscreenVS = MakeVShader(displayhlsl.c_str(), "RENDERDOC_FullscreenVS", "vs_4_0"); m_DebugRender.OverlayPS = MakePShader(displayhlsl.c_str(), "RENDERDOC_OverlayPS", "ps_4_0"); m_DebugRender.CheckerboardPS = MakePShader(displayhlsl.c_str(), "RENDERDOC_CheckerboardPS", "ps_4_0");