diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index 3f53111..05778f0 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -3004,7 +3004,7 @@
 }
 
 bool Renderer11::blitRect(gl::Framebuffer *readTarget, const gl::Rectangle &readRect, gl::Framebuffer *drawTarget, const gl::Rectangle &drawRect,
-                          bool blitRenderTarget, bool blitDepthStencil)
+                          bool blitRenderTarget, bool blitDepthStencil, GLenum filter)
 {
     if (blitRenderTarget)
     {
@@ -3032,7 +3032,7 @@
 
                 RenderTarget *drawRenderTarget = drawBuffer->getRenderTarget();
 
-                if (!blitRenderbufferRect(readRect, drawRect, readRenderTarget, drawRenderTarget, false))
+                if (!blitRenderbufferRect(readRect, drawRect, readRenderTarget, drawRenderTarget, filter))
                 {
                     return false;
                 }
@@ -3060,7 +3060,7 @@
         RenderTarget *readRenderTarget = readBuffer->getDepthStencil();
         RenderTarget *drawRenderTarget = drawBuffer->getDepthStencil();
 
-        if (!blitRenderbufferRect(readRect, drawRect, readRenderTarget, drawRenderTarget, true))
+        if (!blitRenderbufferRect(readRect, drawRect, readRenderTarget, drawRenderTarget, filter))
         {
             return false;
         }
@@ -3290,8 +3290,8 @@
     stagingTex = NULL;
 }
 
-bool Renderer11::blitRenderbufferRect(const gl::Rectangle &readRect, const gl::Rectangle &drawRect, RenderTarget *readRenderTarget, 
-                                      RenderTarget *drawRenderTarget, bool wholeBufferCopy)
+bool Renderer11::blitRenderbufferRect(const gl::Rectangle &readRect, const gl::Rectangle &drawRect, RenderTarget *readRenderTarget,
+                                      RenderTarget *drawRenderTarget, GLenum filter)
 {
     ASSERT(readRect.width == drawRect.width && readRect.height == drawRect.height);
 
@@ -3349,6 +3349,10 @@
     readBox.front = 0;
     readBox.back = 1;
 
+    bool wholeBufferCopy = readRect.x == 0 && readRect.y == 0 &&
+                           readRect.width == readRenderTarget->getWidth() &&
+                           readRect.height == readRenderTarget->getHeight();
+
     // D3D11 needs depth-stencil CopySubresourceRegions to have a NULL pSrcBox
     // We also require complete framebuffer copies for depth-stencil blit.
     D3D11_BOX *pSrcBox = wholeBufferCopy ? NULL : &readBox;
