On Tue, Sep 2, 2014 at 3:49 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > Signed-off-by: Jason Ekstrand <jason.ekstr...@intel.com> > --- > src/mesa/drivers/dri/i965/intel_copy_image.c | 31 > +++++++++++++++++++--------- > 1 file changed, 21 insertions(+), 10 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/intel_copy_image.c > b/src/mesa/drivers/dri/i965/intel_copy_image.c > index 8bda2dd..f7db56d 100644 > --- a/src/mesa/drivers/dri/i965/intel_copy_image.c > +++ b/src/mesa/drivers/dri/i965/intel_copy_image.c > @@ -40,6 +40,7 @@ copy_image_with_blitter(struct brw_context *brw, > int src_width, int src_height) > { > GLuint bw, bh; > + uint32_t src_image_x, src_image_y, dst_image_x, dst_image_y; > int cpp; > > /* The blitter doesn't understand multisampling at all. */ > @@ -70,6 +71,9 @@ copy_image_with_blitter(struct brw_context *brw, > return false; > } > > + intel_miptree_get_image_offset(src_mt, src_level, src_z, > + &src_image_x, &src_image_y); > + > if (_mesa_is_format_compressed(src_mt->format)) { > _mesa_get_format_block_size(src_mt->format, &bw, &bh); > > @@ -83,10 +87,21 @@ copy_image_with_blitter(struct brw_context *brw, > src_width /= (int)bw; > src_height /= (int)bh; > > + /* Inside of the miptree, the x offsets are storred in pixels while
"stored" (the line above and below) > + * the y offsets are storred in blocks. We need to scale just the x > + * offset. > + */ > + src_image_x /= bw; > + > cpp = _mesa_get_format_bytes(src_mt->format); > } else { > cpp = src_mt->cpp; > } > + src_x += src_image_x; > + src_y += src_image_y; > + > + intel_miptree_get_image_offset(dst_mt, dst_level, dst_z, > + &dst_image_x, &dst_image_y); > > if (_mesa_is_format_compressed(dst_mt->format)) { > _mesa_get_format_block_size(dst_mt->format, &bw, &bh); > @@ -96,17 +111,13 @@ copy_image_with_blitter(struct brw_context *brw, > > dst_x /= (int)bw; > dst_y /= (int)bh; > - } > > - uint32_t src_image_x, src_image_y; > - intel_miptree_get_image_offset(src_mt, src_level, src_z, > - &src_image_x, &src_image_y); > - src_x += src_image_x; > - src_y += src_image_y; > - > - uint32_t dst_image_x, dst_image_y; > - intel_miptree_get_image_offset(dst_mt, dst_level, dst_z, > - &dst_image_x, &dst_image_y); > + /* Inside of the miptree, the x offsets are storred in pixels while > + * the y offsets are storred in blocks. We need to scale just the x "stored" (the line above and below) All of these patches look like legitimate bug fixes. There needs to be a Bugzilla: ... tag for bug 82804 (and presumably 83036 as well?) and some Cc: mesa-stable tags. With those typos fixed and the appropriate tags added, the series is Reviewed-by: Matt Turner <matts...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev