[Mesa-stable] [Mesa-dev] [PATCH 1/2] i965/blit: Fix the src dimension sanity check in miptree_copy

Pohjolainen, Topi topi.pohjolainen at gmail.com
Sun Dec 11 18:17:35 UTC 2016


On Sun, Dec 11, 2016 at 07:56:59AM -0800, Jason Ekstrand wrote:
>    On Dec 11, 2016 12:28 AM, "Pohjolainen, Topi"
>    <[1]topi.pohjolainen at gmail.com> wrote:
> 
>    On Tue, Dec 06, 2016 at 12:37:45PM -0800, Jason Ekstrand wrote:
>    > Cc: "13.0" <[2]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.

Ah, that makes sense. Would you mind leaving some of that as comment?

Anyway, both patches:

Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>

> 
>    >
>    >        src_x /= (int)bw;
>    >        src_y /= (int)bh;
>    > --
>    > 2.5.0.400.gff86faf
>    >
> 
>      > _______________________________________________
>      > mesa-dev mailing list
>      > [3]mesa-dev at lists.freedesktop.org
>      > [4]https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> 
> References
> 
>    1. mailto:topi.pohjolainen at gmail.com
>    2. mailto:mesa-stable at lists.freedesktop.org
>    3. mailto:mesa-dev at lists.freedesktop.org
>    4. https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-stable mailing list