[Mesa-dev] [PATCH] i965: Disallow fast blit paths for CopyTexImage with PixelTransfer ops
Ian Romanick
idr at freedesktop.org
Tue Sep 8 13:16:11 PDT 2015
On 09/06/2015 09:37 AM, Chris Wilson 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.
Do we have any test cases that hit these paths? If not, we should
probably con someone into writing some...
> 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;
> +
> intel_prepare_render(brw);
>
> /* glCopyTexSubImage() can be called on a multisampled renderbuffer (if
More information about the mesa-dev
mailing list