From 903389aeda64475abc3e03c210fa363175a0942c Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 2 Mar 2018 10:41:47 +0000 Subject: [PATCH] Mark state objects referenced at start of frame capture. Refs #862 --- renderdoc/driver/d3d11/d3d11_renderstate.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/renderdoc/driver/d3d11/d3d11_renderstate.cpp b/renderdoc/driver/d3d11/d3d11_renderstate.cpp index 2ce42ef40..2ace29a27 100644 --- a/renderdoc/driver/d3d11/d3d11_renderstate.cpp +++ b/renderdoc/driver/d3d11/d3d11_renderstate.cpp @@ -190,6 +190,10 @@ void D3D11RenderState::MarkReferenced(WrappedID3D11DeviceContext *ctx, bool init ctx->MarkResourceReferenced(GetIDForResource(sh->ConstantBuffers[i]), initial ? eFrameRef_Unknown : eFrameRef_Read); + for(UINT i = 0; i < D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; i++) + ctx->MarkResourceReferenced(GetIDForResource(sh->Samplers[i]), + initial ? eFrameRef_Unknown : eFrameRef_Read); + for(UINT i = 0; i < D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT; i++) { if(sh->SRVs[i]) @@ -224,6 +228,15 @@ void D3D11RenderState::MarkReferenced(WrappedID3D11DeviceContext *ctx, bool init ctx->MarkResourceReferenced(GetIDForResource(SO.Buffers[i]), initial ? eFrameRef_Unknown : eFrameRef_Write); + ctx->MarkResourceReferenced(GetIDForResource(RS.State), + initial ? eFrameRef_Unknown : eFrameRef_Read); + + ctx->MarkResourceReferenced(GetIDForResource(OM.BlendState), + initial ? eFrameRef_Unknown : eFrameRef_Read); + + ctx->MarkResourceReferenced(GetIDForResource(OM.DepthStencilState), + initial ? eFrameRef_Unknown : eFrameRef_Read); + for(UINT i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; i++) { if(OM.RenderTargets[i])