diff --git a/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp b/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp index e3c4643d9..5d6236e2b 100644 --- a/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp +++ b/renderdoc/driver/d3d11/d3d11_shaderdebug.cpp @@ -1364,18 +1364,14 @@ bool D3D11DebugAPIWrapper::CalculateSampleGather( return false; } + D3D11RenderStateTracker tracker(m_pDevice->GetImmediateContext()); + ID3D11DeviceContext *context = NULL; m_pDevice->GetImmediateContext(&context); // back up SRV/sampler on PS slot 0 - ID3D11ShaderResourceView *prevSRV = NULL; - ID3D11SamplerState *prevSamp = NULL; - - context->PSGetShaderResources(0, 1, &prevSRV); - context->PSGetSamplers(0, 1, &prevSamp); - ID3D11ShaderResourceView *usedSRV = NULL; ID3D11SamplerState *usedSamp = NULL; @@ -1542,16 +1538,8 @@ bool D3D11DebugAPIWrapper::CalculateSampleGather( SAFE_RELEASE(vs); SAFE_RELEASE(ps); - // restore whatever was on PS slot 0 before we messed with it - - context->PSSetShaderResources(0, 1, &prevSRV); - context->PSSetSamplers(0, 1, &prevSamp); - SAFE_RELEASE(context); - SAFE_RELEASE(prevSRV); - SAFE_RELEASE(prevSamp); - SAFE_RELEASE(usedSRV); SAFE_RELEASE(usedSamp); @@ -1584,17 +1572,11 @@ bool D3D11DebugAPIWrapper::CalculateMathIntrinsic(DXBCBytecode::OpcodeType opcod ID3D11ComputeShader *cs = m_pDevice->GetShaderCache()->MakeCShader(csProgram.c_str(), "main", "cs_5_0"); + D3D11RenderStateTracker tracker(m_pDevice->GetImmediateContext()); + ID3D11DeviceContext *context = NULL; m_pDevice->GetImmediateContext(&context); - // back up CB/UAV on CS slot 0 - - ID3D11Buffer *prevCB = NULL; - ID3D11UnorderedAccessView *prevUAV = NULL; - - context->CSGetConstantBuffers(0, 1, &prevCB); - context->CSGetUnorderedAccessViews(0, 1, &prevUAV); - ID3D11Buffer *constBuf = NULL; D3D11_BUFFER_DESC cdesc; @@ -1700,17 +1682,8 @@ bool D3D11DebugAPIWrapper::CalculateMathIntrinsic(DXBCBytecode::OpcodeType opcod SAFE_RELEASE(uav); SAFE_RELEASE(cs); - // restore whatever was on CS slot 0 before we messed with it - - UINT append[] = {~0U}; - context->CSSetConstantBuffers(0, 1, &prevCB); - context->CSSetUnorderedAccessViews(0, 1, &prevUAV, append); - SAFE_RELEASE(context); - SAFE_RELEASE(prevCB); - SAFE_RELEASE(prevUAV); - return true; }