diff --git a/src/d3d11/d3d11_context.cpp b/src/d3d11/d3d11_context.cpp
index 6be608af..85297697 100644
--- a/src/d3d11/d3d11_context.cpp
+++ b/src/d3d11/d3d11_context.cpp
@@ -1689,13 +1689,6 @@ namespace dxvk {
           UINT                              NumViews,
           ID3D11RenderTargetView* const*    ppRenderTargetViews,
           ID3D11DepthStencilView*           pDepthStencilView) {
-    // Optimization: If the number of draw and dispatch calls issued
-    // prior to the previous context flush is above a certain threshold,
-    // submit the current command buffer in order to keep the GPU busy.
-    // This also helps keep the command buffers at a reasonable size.
-    if (m_drawCount >= 500)
-      Flush();
-    
     for (UINT i = 0; i < m_state.om.renderTargetViews.size(); i++) {
       D3D11RenderTargetView* view = nullptr;
       
diff --git a/src/d3d11/d3d11_context.h b/src/d3d11/d3d11_context.h
index 538816f8..80edabab 100644
--- a/src/d3d11/d3d11_context.h
+++ b/src/d3d11/d3d11_context.h
@@ -439,7 +439,7 @@ namespace dxvk {
     void STDMETHODCALLTYPE OMSetRenderTargets(
             UINT                              NumViews,
             ID3D11RenderTargetView* const*    ppRenderTargetViews,
-            ID3D11DepthStencilView*           pDepthStencilView) final;
+            ID3D11DepthStencilView*           pDepthStencilView);
     
     void STDMETHODCALLTYPE OMSetRenderTargetsAndUnorderedAccessViews(
             UINT                              NumRTVs,
diff --git a/src/d3d11/d3d11_context_imm.cpp b/src/d3d11/d3d11_context_imm.cpp
index 6d5fe7d9..19e09c1a 100644
--- a/src/d3d11/d3d11_context_imm.cpp
+++ b/src/d3d11/d3d11_context_imm.cpp
@@ -172,6 +172,22 @@ namespace dxvk {
   }
   
   
+  void STDMETHODCALLTYPE D3D11ImmediateContext::OMSetRenderTargets(
+          UINT                              NumViews,
+          ID3D11RenderTargetView* const*    ppRenderTargetViews,
+          ID3D11DepthStencilView*           pDepthStencilView) {
+    // Optimization: If the number of draw and dispatch calls issued
+    // prior to the previous context flush is above a certain threshold,
+    // submit the current command buffer in order to keep the GPU busy.
+    // This also helps keep the command buffers at a reasonable size.
+    if (m_drawCount >= 500)
+      Flush();
+    
+    D3D11DeviceContext::OMSetRenderTargets(
+      NumViews, ppRenderTargetViews, pDepthStencilView);
+  }
+  
+  
   HRESULT D3D11ImmediateContext::MapImage(
           D3D11CommonTexture*         pResource,
           UINT                        Subresource,
diff --git a/src/d3d11/d3d11_context_imm.h b/src/d3d11/d3d11_context_imm.h
index d2f192f4..84dc2c58 100644
--- a/src/d3d11/d3d11_context_imm.h
+++ b/src/d3d11/d3d11_context_imm.h
@@ -45,6 +45,11 @@ namespace dxvk {
             ID3D11Resource*             pResource,
             UINT                        Subresource) final;
     
+    void STDMETHODCALLTYPE OMSetRenderTargets(
+            UINT                              NumViews,
+            ID3D11RenderTargetView* const*    ppRenderTargetViews,
+            ID3D11DepthStencilView*           pDepthStencilView) final;
+    
     void SynchronizeCsThread();
     
   private: