[Mesa-dev] [PATCH 02/16] util: simplify a few things in util_can_blit_via_copy_region()
Roland Scheidegger
sroland at vmware.com
Thu Jun 30 00:02:31 UTC 2016
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 <sroland at vmware.com>
More information about the mesa-dev
mailing list