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

Siarhei Siamashka siarhei.siamashka at gmail.com
Tue Oct 26 16:52:26 PDT 2010


On Wednesday 20 October 2010 15:46:57 Siarhei Siamashka wrote:
> On Wednesday 20 October 2010 13:40:26 Maarten Bosmans wrote:
> > 2010/10/20 Siarhei Siamashka <siarhei.siamashka at gmail.com>:
> > > Here is a work-in-progress branch with the initial variant slow path
> > > reporting code:
> > > http://cgit.freedesktop.org/~siamashka/pixman/log/?h=perfstat-wip

[...]

> Actually as I see it now, 'solid' and 'pixbuf' are just decoded wrong, they
> are likely not even BITS types of images. So the reported "slow paths"
> involving these are somewhat bogus.

This problem is fixed now (actually it had been fixed almost immediately after
it was discovered).

The slow path reporting code discovers some interesting things, for example 
'over_n_8_8' fast path seems to be needed for the Firefox browser when opening
http://pandaboard.org/ page:

Oct 27 02:38:15 i7 firefox: pixman slow path: op=3 s=00010000|002E2A7F 
m=08018000|002F0A7F d=08018000|002E0A7F - 99/45254 (30.818 MPix)
OVER
    solid                 a8                    a8                   
    -- src --             -- mask --            -- dest --           
    NARROW_FORMAT         NARROW_FORMAT         NARROW_FORMAT        
    NO_ACCESSORS          NO_ACCESSORS          NO_ACCESSORS         
    NO_ALPHA_MAP          NO_ALPHA_MAP          NO_ALPHA_MAP         
    UNIFIED_ALPHA         UNIFIED_ALPHA         UNIFIED_ALPHA        
    NO_NORMAL_REPEAT      NO_NORMAL_REPEAT      NO_NORMAL_REPEAT     
    NO_PAD_REPEAT         NO_PAD_REPEAT         NO_PAD_REPEAT        
    NO_REFLECT_REPEAT     NO_REFLECT_REPEAT     NO_REFLECT_REPEAT    
    NEAREST_FILTER        NEAREST_FILTER        NEAREST_FILTER       
    NO_CONVOLUTION_FILTER NO_CONVOLUTION_FILTER NO_CONVOLUTION_FILTER
    AFFINE_TRANSFORM      AFFINE_TRANSFORM      AFFINE_TRANSFORM     
    ID_TRANSFORM          ID_TRANSFORM          ID_TRANSFORM         
    X_UNIT_POSITIVE       X_UNIT_POSITIVE       X_UNIT_POSITIVE      
    Y_UNIT_ZERO           Y_UNIT_ZERO           Y_UNIT_ZERO          
    IS_OPAQUE             SAMPLES_COVER_CLIP

Surely there are some other not yet optimized pixman usage cases which can be
encountered in the wild. And revisiting cairo traces may make sense too in
order to make sure that we have all the optimizations which could be easily
done.

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.

-- 
Best regards,
Siarhei Siamashka


More information about the Pixman mailing list