summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2015-01-14 17:21:55 -0800
committerBen Widawsky <benjamin.widawsky@intel.com>2015-01-16 15:44:18 -0800
commit43e0c86f7501b524eddebf31eab969a3e2decf38 (patch)
treed2f5d9b4ca2a153dbc0d7debfa6aee7441e5ce15
parent68ae4056b097aa794d437a5d340733adb38a57ae (diff)
i965: Prefer Meta over the BLT for BlitFramebuffer.braswell-prefer-meta
There's some debate about whether we should use Meta or BLORP, but either should run circles around the BLT engine. Improves performance in "copypixrate -blit -back" (from Mesa demos) by 232.037% +/- 3.15795% (n=10) on Broadwell GT3e. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r--src/mesa/drivers/dri/i965/intel_fbo.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c b/src/mesa/drivers/dri/i965/intel_fbo.c
index 37ac613fa3..b54c11d799 100644
--- a/src/mesa/drivers/dri/i965/intel_fbo.c
+++ b/src/mesa/drivers/dri/i965/intel_fbo.c
@@ -882,6 +882,13 @@ intel_blit_framebuffer(struct gl_context *ctx,
if (mask == 0x0)
return;
+ mask = _mesa_meta_BlitFramebuffer(ctx,
+ srcX0, srcY0, srcX1, srcY1,
+ dstX0, dstY0, dstX1, dstY1,
+ mask, filter);
+ if (mask == 0x0)
+ return;
+
if (brw->gen >= 8 && (mask & GL_STENCIL_BUFFER_BIT)) {
brw_meta_fbo_stencil_blit(brw_context(ctx),
srcX0, srcY0, srcX1, srcY1,
@@ -899,13 +906,6 @@ intel_blit_framebuffer(struct gl_context *ctx,
if (mask == 0x0)
return;
- mask = _mesa_meta_BlitFramebuffer(ctx,
- srcX0, srcY0, srcX1, srcY1,
- dstX0, dstY0, dstX1, dstY1,
- mask, filter);
- if (mask == 0x0)
- return;
-
_swrast_BlitFramebuffer(ctx,
srcX0, srcY0, srcX1, srcY1,
dstX0, dstY0, dstX1, dstY1,