[Pixman] [RFC] Performance reporting capabilities for pixman?

Soeren Sandmann sandmann at daimi.au.dk
Thu Oct 28 18:17:28 PDT 2010


Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:

> As there are no more comments/opinions, I'm going to prepare some more or less
> final patches based on what we have now. They will be posted to the mailing
> list shortly.

I noticed this:

> @@ -745,7 +745,11 @@ pixman_image_composite32 (pixman_op_t      op,
>      
>      if ((mask_flags & BOTH) == BOTH)
>         mask_flags |= FAST_PATH_IS_OPAQUE;
> -    
> +
> +    src->common.flags = src_flags;
> +    if (mask)
> +       mask->common.flags = mask_flags;
> +
>      /*
>       * Check if we can replace our operator by a simpler one
>       * if the src or dest are opaque. The output operator should be

That can't be correct, because some of the flags are computed on the
fly. If you store those in the image, then they will survive until
next time that image is used, when they may no longer apply.

I'm not sure how to get the full set of flags passed to the general
code in a nice way. One hack would be to just store them in global
variables, but that's rather ugly.

Another possibility might be to resurrect the idea of a
composite_args_t struct containing the arguments that are currently
passed to pixman_composite_func_t. That would make it cheap to pass
the full set of flags. That's a large patch though, and still somewhat
ugly. It also has unknown performance implications.


Soren


More information about the Pixman mailing list