[Mesa-dev] [PATCH] i965: Disallow fast blit paths for CopyTexImage with PixelTransfer ops

Anuj Phogat anuj.phogat at gmail.com
Tue Sep 8 12:33:05 PDT 2015


On Sun, Sep 6, 2015 at 9:37 AM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> glCopyTexImage behaves similarly to glReadPixels with respect to the
> pixel transfer operations. Therefore if any are set we cannot use the
> simply blit fast paths.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Jason Ekstrand <jason.ekstrand at intel.com>
> Cc: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 4 ++++
>  src/mesa/drivers/dri/i965/intel_tex_copy.c   | 4 ++++
>  2 files changed, 8 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> index 205c905..ba11d3d 100644
> --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> @@ -215,6 +215,10 @@ brw_blorp_copytexsubimage(struct brw_context *brw,
>     struct intel_renderbuffer *src_irb = intel_renderbuffer(src_rb);
>     struct intel_texture_image *intel_image = intel_texture_image(dst_image);
>
> +   /* No pixel transfer operations (zoom, bias, mapping), just a blit */
> +   if (brw->ctx._ImageTransferState)
> +      return false;
> +
>     /* Sync up the state of window system buffers.  We need to do this before
>      * we go looking at the src renderbuffer's miptree.
>      */
> diff --git a/src/mesa/drivers/dri/i965/intel_tex_copy.c b/src/mesa/drivers/dri/i965/intel_tex_copy.c
> index 4d8c82e..ecdd052 100644
> --- a/src/mesa/drivers/dri/i965/intel_tex_copy.c
> +++ b/src/mesa/drivers/dri/i965/intel_tex_copy.c
> @@ -55,6 +55,10 @@ intel_copy_texsubimage(struct brw_context *brw,
>     const GLenum internalFormat = intelImage->base.Base.InternalFormat;
>     bool ret;
>
> +   /* No pixel transfer operations (zoom, bias, mapping), just a blit */
> +   if (brw->ctx._ImageTransferState)
> +      return false;
> +
I think we need a similar condition in copytexsubimage_using_blit_framebuffer()
called from _mesa_meta_CopyTexSubImage().

>     intel_prepare_render(brw);
>
>     /* glCopyTexSubImage() can be called on a multisampled renderbuffer (if
> --
> 2.5.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list