On Thursday, January 15, 2015 01:41:14 AM Kenneth Graunke wrote:
> 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 <[email protected]>
> ---
>  src/mesa/drivers/dri/i965/intel_fbo.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> Ben: this might be a good candidate for your braswell branch.
> 
> Jason: I bet this will affect your PBO upload path.  I suspect it may
> make it a lot faster on Gen8+, as you might've been getting the BLT
> engine when trying to use BlitFramebuffer.  I haven't tested.
> 
> diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c 
> b/src/mesa/drivers/dri/i965/intel_fbo.c
> index 37ac613f..b54c11d 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,
> 

Just realized there isn't enough context for this patch to make any sense.
It changes the ordering to:

1. BLORP
2. Meta
3. Gen8 Stencil Blit (special case)
4. BLT
5. Software

Previously, the order was:

1. BLORP
2. Gen8 Stencil Blit (special case)
3. Meta
4. BLT
5. Software

(Meta doesn't handle stencil blits today, so moving it above the Gen8 stencil
 blit special case shouldn't have any effect.)

--Ken

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to