diff options
author | Eric Anholt <[email protected]> | 2013-05-23 16:43:58 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2013-05-28 12:40:35 -0700 |
commit | 48a22340cfdfe5a8d007f37ffbc39b60184c6187 (patch) | |
tree | 09cf9a114a7abff66a9a7829e1430e56aaf79e99 /src/mesa/drivers | |
parent | 9720d436d1b6a0f64d023daf243e56a6d5dee5df (diff) |
i965: Prefer blorp glBlitFramebuffer() to the glCopyTexSubImage-based blit.
I think we've measured no performance difference from this in the past,
except that the blorp code can do things like multisample resolves.
Prevents piglit regression in the next commit when a testcase started
trying to do a multisampled resolve through the old glCopyTexSubImage()
path.
Reviewed-and-tested-by: Ian Romanick <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Acked-by: Paul Berry <[email protected]>
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_fbo.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index 34f31fb0a88..05ff784f074 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -816,14 +816,6 @@ intel_blit_framebuffer(struct gl_context *ctx, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { - /* Try faster, glCopyTexSubImage2D approach first which uses the BLT. */ - mask = intel_blit_framebuffer_copy_tex_sub_image(ctx, - srcX0, srcY0, srcX1, srcY1, - dstX0, dstY0, dstX1, dstY1, - mask, filter); - if (mask == 0x0) - return; - #ifndef I915 mask = brw_blorp_framebuffer(intel_context(ctx), srcX0, srcY0, srcX1, srcY1, @@ -833,6 +825,15 @@ intel_blit_framebuffer(struct gl_context *ctx, return; #endif + /* Try glCopyTexSubImage2D approach which uses the BLT. */ + mask = intel_blit_framebuffer_copy_tex_sub_image(ctx, + srcX0, srcY0, srcX1, srcY1, + dstX0, dstY0, dstX1, dstY1, + mask, filter); + if (mask == 0x0) + return; + + _mesa_meta_BlitFramebuffer(ctx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, |