On Tue, Feb 17, 2015 at 05:39:33PM -0800, Kenneth Graunke wrote: > There's some debate about whether we should use Meta or BLORP, > but either should run circles around the BLT engine. > > In particular, this means that Gen8+ will use the 3D engine for blits, > like we do on Gen6-7. > > Improves performance in "copypixrate -blit -back" (from Mesa demos) > by 232.037% +/- 3.15795% (n=10) on Broadwell GT3e.
I've been also experimenting with the same test by disabling blorp for fb-blits on IVB. I'm a little confused since even without your patch the blit goes through meta instead of the BLT engine. It is the test for scissor that prevents intel_blit_framebuffer_with_blitter() from doing the blit: ... /* If the source and destination are the same size with no mirroring, * the rectangles are within the size of the texture and there is no * scissor, then we can probably use the blit engine. */ if (!(srcX0 - srcX1 == dstX0 - dstX1 && srcY0 - srcY1 == dstY0 - dstY1 && srcX1 >= srcX0 && srcY1 >= srcY0 && srcX0 >= 0 && srcX1 <= readFb->Width && srcY0 >= 0 && srcY1 <= readFb->Height && dstX0 >= 0 && dstX1 <= drawFb->Width && dstY0 >= 0 && dstY1 <= drawFb->Height && !(ctx->Scissor.EnableFlags))) { perf_debug("glBlitFramebuffer(): non-1:1 blit. " "Falling back to software rendering.\n"); ... I wonder where the performance difference actually comes from, could it be the intel_prepare_render() that intel_blit_framebuffer_with_blitter() calls before bailing out. With your patch that won't get called anymore. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev