[Mesa-dev] [PATCH] i965: Disallow fast blit paths for CopyTexImage with PixelTransfer ops
Kenneth Graunke
kenneth at whitecape.org
Mon Sep 7 09:54:36 PDT 2015
On Sunday, September 06, 2015 05:37:18 PM 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.
>
> 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
>
Looks right to me; we could probably easily support zoom if we wanted -
blorp already can handle scaled blits. This seems good in the meantime.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150907/a7daa21d/attachment.sig>
More information about the mesa-dev
mailing list