]> git.cworth.org Git - apitrace/commitdiff
d3dretrace: Handle deferred d3d11 contexts better.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 13 Jun 2013 14:51:48 +0000 (15:51 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 13 Jun 2013 14:52:22 +0000 (15:52 +0100)
common/trace_parser_flags.cpp
retrace/dxgiretrace.py

index a799bd8787971e2a6a570667c963138189749a4c..0a636493c9f99a8a30f14f6713d72a4cc73e173a 100644 (file)
@@ -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 },
index e37e49a5395cae4a2c3b2bbef825db9d0d5f6c66..7dcc7013a505bac5d29dcd02ee9b3ba9d8abe8e2 100644 (file)
@@ -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) {'