<div dir="auto"><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Dec 11, 2016 12:28 AM, "Pohjolainen, Topi" <<a href="mailto:topi.pohjolainen@gmail.com">topi.pohjolainen@gmail.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="elided-text">On Tue, Dec 06, 2016 at 12:37:45PM -0800, Jason Ekstrand wrote:<br>
> Cc: "13.0" <<a href="mailto:mesa-stable@lists.freedesktop.org">mesa-stable@lists.<wbr>freedesktop.org</a>><br>
> ---<br>
>  src/mesa/drivers/dri/i965/<wbr>intel_blit.c | 6 ++++--<br>
>  1 file changed, 4 insertions(+), 2 deletions(-)<br>
><br>
> diff --git a/src/mesa/drivers/dri/i965/<wbr>intel_blit.c b/src/mesa/drivers/dri/i965/<wbr>intel_blit.c<br>
> index 03a35ee..5f0cf74 100644<br>
> --- a/src/mesa/drivers/dri/i965/<wbr>intel_blit.c<br>
> +++ b/src/mesa/drivers/dri/i965/<wbr>intel_blit.c<br>
> @@ -421,8 +421,10 @@ intel_miptree_copy(struct brw_context *brw,<br>
><br>
>        assert(src_x % bw == 0);<br>
>        assert(src_y % bh == 0);<br>
> -      assert(src_width % bw == 0);<br>
> -      assert(src_height % bh == 0);<br>
> +      assert(src_width % bw == 0 ||<br>
> +             src_x + src_width == minify(src_mt->logical_width0, src_level));<br>
> +      assert(src_height % bh == 0 ||<br>
> +             src_y + src_height == minify(src_mt->logical_<wbr>height0, src_level));<br>
<br>
</div>Can you given example how we can blit sub-block worth of data? Above there is<br>
check for src_x/y being block aligned don't all mipmap levels need to be<br>
aligned as well?</blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">For compressed textures, the width and height of the entire texture don't have to be block-aligned.  When computing the size of a miplevel in blocks, you just round up to the nearest block and part of the last block may be outside the texture.  This means that every time you have a subrectangle of a compressed textures, the upper and left edges have to be block-aligned and the lower and right edges have to be either block-aligned or be the left or right edge of the miplevel.  Make sense?  It's really annoying.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="quoted-text">
><br>
>        src_x /= (int)bw;<br>
>        src_y /= (int)bh;<br>
> --<br>
> 2.5.0.400.gff86faf<br>
><br>
</div>> ______________________________<wbr>_________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</blockquote></div><br></div></div></div>