On Fri, Aug 8, 2014 at 4:05 AM, Neil Roberts <n...@linux.intel.com> wrote:

> Jason Ekstrand <ja...@jlekstrand.net> writes:
>
> > +   if (src_mt == dst_mt && src_level == dst_level && src_z == dst_z) {
> > +      /* If we are on the same miptree, same level, and same slice, then
> > +       * intel_miptree_map won't let us map it twice.  We have to do a
> > +       * single map in read-write mode.
> > +       */
> > +
> > +      map_x1 = MIN2(src_x, dst_x);
> > +      map_y1 = MIN2(src_y, dst_y);
> > +      map_x2 = MAX2(src_x, dst_x) + src_width;
> > +      map_y2 = MAX2(src_y, dst_y) + src_height;
> > +
> > +      intel_miptree_map(brw, src_mt, src_level, src_z,
> > +                        map_x1, map_y1, map_x2 - map_x1, map_y2 -
> map_y1,
> > +                        GL_MAP_READ_BIT | GL_MAP_WRITE_BIT,
> > +                        (void **)&mapped, &src_stride);
> > +
> > +      dst_stride = src_stride;
> > +
> > +      /* Set the offsets here so we don't have to think about it later
> */
> > +      src_mapped = mapped + (src_y - map_y1) * src_stride +
> > +                            (src_x - map_x1) * cpp;
> > +      dst_mapped = mapped + (dst_y - map_y1) * dst_stride +
> > +                            (dst_x - map_x1) * cpp;
>
> This needs to take into account the block size of the format or it will
> offset to the wrong position. I guess that is quite important as this
> code path will only be used for compressed formats.
>

Yeah, you're right.  I'll get that patched up and update the tests to
exercise it.


>
> The commit message still mentions the maximum stride which is no longer
> valid.
>
> Regards,
> - Neil
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to