[Mesa-dev] [PATCH 1/2] i965/blit: Fix the src dimension sanity check in miptree_copy
Jason Ekstrand
jason at jlekstrand.net
Sun Dec 11 15:56:59 UTC 2016
On Dec 11, 2016 12:28 AM, "Pohjolainen, Topi" <topi.pohjolainen at gmail.com>
wrote:
On Tue, Dec 06, 2016 at 12:37:45PM -0800, Jason Ekstrand wrote:
> Cc: "13.0" <mesa-stable at lists.freedesktop.org>
> ---
> src/mesa/drivers/dri/i965/intel_blit.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_blit.c
b/src/mesa/drivers/dri/i965/intel_blit.c
> index 03a35ee..5f0cf74 100644
> --- a/src/mesa/drivers/dri/i965/intel_blit.c
> +++ b/src/mesa/drivers/dri/i965/intel_blit.c
> @@ -421,8 +421,10 @@ intel_miptree_copy(struct brw_context *brw,
>
> assert(src_x % bw == 0);
> assert(src_y % bh == 0);
> - assert(src_width % bw == 0);
> - assert(src_height % bh == 0);
> + assert(src_width % bw == 0 ||
> + src_x + src_width == minify(src_mt->logical_width0,
src_level));
> + assert(src_height % bh == 0 ||
> + src_y + src_height == minify(src_mt->logical_height0,
src_level));
Can you given example how we can blit sub-block worth of data? Above there
is
check for src_x/y being block aligned don't all mipmap levels need to be
aligned as well?
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.
>
> src_x /= (int)bw;
> src_y /= (int)bh;
> --
> 2.5.0.400.gff86faf
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161211/a8e8e577/attachment.html>
More information about the mesa-dev
mailing list