On Tue, Sep 8, 2015 at 12:58 PM, Chris Wilson <ch...@chris-wilson.co.uk> wrote: > On Tue, Sep 08, 2015 at 12:33:05PM -0700, Anuj Phogat wrote: >> On Sun, Sep 6, 2015 at 9:37 AM, Chris Wilson <ch...@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 <ch...@chris-wilson.co.uk> >> > Cc: Jason Ekstrand <jason.ekstr...@intel.com> >> > Cc: Kenneth Graunke <kenn...@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(). > > Actually, ImageTransferState doesn't encompass all the PixelTransfer > operations, so a few more checks are required along all the blit paths, > namely ctl->Pixel.Zoom[XY] != 1.f > > Those latter we don't need along the meta path as Kenneth pointed out, > both meta (though the blit path will need to check for integer > coordinates after the transform) and blorp can handle zoom. Right. I meant to say that brw->ctx._ImageTransferState condition added in this patch is also applicable in _mesa_meta_CopyTexSubImage(). It'll be nice to add that change in this patch.
> > More work required. :| > -Chris > > -- > Chris Wilson, Intel Open Source Technology Centre _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev