Don't run fast paths if the format requires wide compositing.
authorSøren Sandmann Pedersen <sandmann@redhat.com>
Thu, 6 Aug 2009 01:24:50 +0000 (21:24 -0400)
committerSøren Sandmann Pedersen <sandmann@redhat.com>
Sat, 8 Aug 2009 22:50:17 +0000 (18:50 -0400)
This could happen because the wide formats would still be considered
solid if the image was 1x1 and repeating.

pixman/pixman-utils.c

index 1396fb7..961c6c6 100644 (file)
@@ -663,7 +663,8 @@ _pixman_run_fast_path (const pixman_fast_path_t *paths,
        if (has_fast_path && src->type == BITS)
        {
            has_fast_path = !src->bits.read_func &&
-                           !src->bits.write_func;
+                           !src->bits.write_func &&
+                           !PIXMAN_FORMAT_IS_WIDE (src->bits.format);
        }
     }
 
@@ -674,9 +675,10 @@ _pixman_run_fast_path (const pixman_fast_path_t *paths,
                        !mask->common.alpha_map &&
                        !mask->bits.read_func &&
                        !mask->bits.write_func &&
-                       mask->common.filter != PIXMAN_FILTER_CONVOLUTION &&
-                       mask->common.repeat != PIXMAN_REPEAT_PAD &&
-                       mask->common.repeat != PIXMAN_REPEAT_REFLECT;
+                        mask->common.filter != PIXMAN_FILTER_CONVOLUTION &&
+                        mask->common.repeat != PIXMAN_REPEAT_PAD &&
+                        mask->common.repeat != PIXMAN_REPEAT_REFLECT;
+                       !PIXMAN_FORMAT_IS_WIDE (src->bits.format);
     }
 
     if (has_fast_path)