Am 29.06.2016 um 01:52 schrieb Brian Paul: > Since only the src box can have negative dims for flipping, just > comparing the src/dst box sizes is enough to detect flips. > --- > src/gallium/auxiliary/util/u_surface.c | 20 ++++++++------------ > 1 file changed, 8 insertions(+), 12 deletions(-) > > diff --git a/src/gallium/auxiliary/util/u_surface.c > b/src/gallium/auxiliary/util/u_surface.c > index 8d22bcf..e2229bc 100644 > --- a/src/gallium/auxiliary/util/u_surface.c > +++ b/src/gallium/auxiliary/util/u_surface.c > @@ -701,21 +701,20 @@ util_can_blit_via_copy_region(const struct > pipe_blit_info *blit) > return FALSE; > } > > - /* No masks, no filtering, no scissor. */ > + /* No masks, no filtering, no scissor, no blending */ > if ((blit->mask & mask) != mask || > blit->filter != PIPE_TEX_FILTER_NEAREST || > - blit->scissor_enable) { > + blit->scissor_enable || > + blit->alpha_blend) { > return FALSE; > } > > - /* No flipping. */ > - if (blit->src.box.width < 0 || > - blit->src.box.height < 0 || > - blit->src.box.depth < 0) { > - return FALSE; > - } > + /* Only the src box can have negative dims for flipping */ > + assert(blit->dst.box.width >= 1); > + assert(blit->dst.box.height >= 1); > + assert(blit->dst.box.depth >= 1); > > - /* No scaling. */ > + /* No scaling or flipping */ > if (blit->src.box.width != blit->dst.box.width || > blit->src.box.height != blit->dst.box.height || > blit->src.box.depth != blit->dst.box.depth) { > @@ -736,9 +735,6 @@ util_can_blit_via_copy_region(const struct pipe_blit_info > *blit) > return FALSE; > } > > - if (blit->alpha_blend) > - return FALSE; > - > return TRUE; > } > >
Now that you've simplified this, it looks to me like it should also check for the new num_window_rectangle blit property. But in any case this isn't your fault, for 1-3: Reviewed-by: Roland Scheidegger <srol...@vmware.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev