From 0dc448e0bf2d613e7a2812442d87f6dd80a34cea Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Thu, 13 Jun 2013 15:51:48 +0100 Subject: [PATCH] d3dretrace: Handle deferred d3d11 contexts better. --- common/trace_parser_flags.cpp | 2 ++ retrace/dxgiretrace.py | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) 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) {' -- 2.45.2