<div dir="auto"><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Dec 2, 2016 4:43 PM, "Jordan Justen" <<a href="mailto:jordan.l.justen@intel.com">jordan.l.justen@intel.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="quoted-text">On 2016-12-01 16:19:49, Jason Ekstrand wrote:<br>
> On Wed, Nov 30, 2016 at 8:12 PM, Jordan Justen <<a href="mailto:jordan.l.justen@intel.com">jordan.l.justen@intel.com</a>><br>
> wrote:<br>
><br>
</div><div class="quoted-text">> > +<br>
> > +   x_offset_sa = (uint32_t)*x0 * px_size_sa.w + info->tile_x_sa;<br>
> > +   y_offset_sa = (uint32_t)*y0 * px_size_sa.h + info->tile_y_sa;<br>
> > +   isl_tiling_get_intratile_<wbr>offset_sa(dev, info->surf.tiling,<br>
> > +                                      info->surf.format,<br>
> > info->surf.row_pitch,<br>
> > +                                      x_offset_sa, y_offset_sa,<br>
> > +                                      &byte_offset,<br>
> > +                                      &info->tile_x_sa, &info->tile_y_sa);<br>
> ><br>
><br>
> If we're going to do things this early, we should just make our own<br>
> temporary variables for tile_x/y instead of trying to re-use the ones from<br>
> info<br>
><br>
<br>
</div>Note that blorp_copy may have called surf_convert_to_uncompressed<br>
which calls surf_convert_to_single_slice and therefore tile_x/y may<br>
already be non-zero.<br>
<br>
This code handles tile_x/y already being non-zero by adding them into<br>
x/y_offset_sa.<br>
<br>
After discovering the new offset, I adjust the coords such that we can<br>
use 0 for the tile offsets. So, we'll eventually need to 0 the<br>
offsets.</blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">Right.  I missed that the compression lowering code might mess things up.  In that case, I think this is correct.</div></div>