From: José Fonseca Date: Thu, 13 Jun 2013 14:51:48 +0000 (+0100) Subject: d3dretrace: Handle deferred d3d11 contexts better. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=0dc448e0bf2d613e7a2812442d87f6dd80a34cea;p=apitrace d3dretrace: Handle deferred d3d11 contexts better. --- diff --git a/common/trace_parser_flags.cpp b/common/trace_parser_flags.cpp index a799bd8..0a63649 100644 --- a/common/trace_parser_flags.cpp +++ b/common/trace_parser_flags.cpp @@ -79,6 +79,7 @@ callFlagTable[] = { { "ID3D11DeviceContext1::DrawIndexedInstancedIndirect", CALL_FLAG_RENDER }, { "ID3D11DeviceContext1::DrawInstanced", CALL_FLAG_RENDER }, { "ID3D11DeviceContext1::DrawInstancedIndirect", CALL_FLAG_RENDER }, + { "ID3D11DeviceContext1::ExecuteCommandList", CALL_FLAG_RENDER }, { "ID3D11DeviceContext1::OMSetRenderTargets", CALL_FLAG_SWAP_RENDERTARGET }, { "ID3D11DeviceContext1::OMSetRenderTargetsAndUnorderedAccessViews", CALL_FLAG_SWAP_RENDERTARGET }, { "ID3D11DeviceContext::Draw", CALL_FLAG_RENDER }, @@ -88,6 +89,7 @@ callFlagTable[] = { { "ID3D11DeviceContext::DrawIndexedInstancedIndirect", CALL_FLAG_RENDER }, { "ID3D11DeviceContext::DrawInstanced", CALL_FLAG_RENDER }, { "ID3D11DeviceContext::DrawInstancedIndirect", CALL_FLAG_RENDER }, + { "ID3D11DeviceContext::ExecuteCommandList", CALL_FLAG_RENDER }, { "ID3D11DeviceContext::OMSetRenderTargets", CALL_FLAG_SWAP_RENDERTARGET }, { "ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews", CALL_FLAG_SWAP_RENDERTARGET }, { "IDXGISwapChain::Present", CALL_FLAG_SWAPBUFFERS }, diff --git a/retrace/dxgiretrace.py b/retrace/dxgiretrace.py index e37e49a..7dcc701 100644 --- a/retrace/dxgiretrace.py +++ b/retrace/dxgiretrace.py @@ -185,7 +185,9 @@ createWindow(DXGI_SWAP_CHAIN_DESC *pSwapChainDesc) { if method.name == 'Release': print r' d3d11Dumper.unbindDevice(_this);' else: - print r' d3d11Dumper.bindDevice(_this);' + print r' if (_this->GetType() == D3D11_DEVICE_CONTEXT_IMMEDIATE) {' + print r' d3d11Dumper.bindDevice(_this);' + print r' }' if interface.name == 'IDXGIFactory' and method.name == 'QueryInterface': print r' if (riid == IID_IDXGIFactoryDWM) {'