[Mesa-dev] [PATCH] i965: Disallow PixelTransfer operations for tiled-memcpy TexImage/ReadPixels

Jason Ekstrand jason at jlekstrand.net
Fri Sep 4 11:27:07 PDT 2015


Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>

On Fri, Sep 4, 2015 at 11:24 AM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> The tiled memcpy fast paths perform a simple blit (with only a couple of
> trivial pixel conversion routines) and do not accommodate PixelTransfer
> operations. Therefore if any are set, fallback to the regular routines.
> Note that PixelTransfer only applies to TexImage and ReadPixels, not to
> GetTexImage.
>
> 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/intel_pixel_read.c   | 4 ++++
>  src/mesa/drivers/dri/i965/intel_tex_subimage.c | 4 ++++
>  2 files changed, 8 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_pixel_read.c b/src/mesa/drivers/dri/i965/intel_pixel_read.c
> index 3fe506e..eb366cd 100644
> --- a/src/mesa/drivers/dri/i965/intel_pixel_read.c
> +++ b/src/mesa/drivers/dri/i965/intel_pixel_read.c
> @@ -109,6 +109,10 @@ intel_readpixels_tiled_memcpy(struct gl_context * ctx,
>         pack->Invert)
>        return false;
>
> +   /* Only a simple blit, no scale, bias or other mapping. */
> +   if (ctx->_ImageTransferState)
> +      return false;
> +
>     /* This renderbuffer can come from a texture.  In this case, we impose
>      * some of the same restrictions we have for textures and adjust for
>      * miplevels.
> diff --git a/src/mesa/drivers/dri/i965/intel_tex_subimage.c b/src/mesa/drivers/dri/i965/intel_tex_subimage.c
> index 31e511f..44921e5 100644
> --- a/src/mesa/drivers/dri/i965/intel_tex_subimage.c
> +++ b/src/mesa/drivers/dri/i965/intel_tex_subimage.c
> @@ -118,6 +118,10 @@ intel_texsubimage_tiled_memcpy(struct gl_context * ctx,
>         packing->Invert)
>        return false;
>
> +   /* Only a simple blit, no scale, bias or other mapping. */
> +   if (ctx->_ImageTransferState)
> +      return false;
> +
>     if (!intel_get_memcpy(texImage->TexFormat, format, type, &mem_copy, &cpp,
>                           INTEL_UPLOAD))
>        return false;
> --
> 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