Skip to content
  • Daniel van Vugt's avatar
    iconGrid: Eliminate JavaScript for painting/picking · 0e0574a0
    Daniel van Vugt authored and Florian Müllner's avatar Florian Müllner committed
    The only reason for `vfunc_paint` and `vfunc_pick` existing was to
    implement a culling optimization. Although that optimization actually
    made performance worse than none at all because it forced the painting
    and picking cycles to spend more time calling into JavaScript.
    
    Turns out we don't have to choose between native code and culling though.
    Just reimplement the culling using native ClutterActor functions and we
    get the benefits of both.
    
    Performance on an i7-7700:
    
    Moving the cursor over the icon grid:
    Before: 70% CPU, 5.5ms per frame
    After : 60% CPU, 4.5ms per frame
    
    Scrolling the icon grid:
    Before: 60% CPU, 4.4ms per frame
    After : 50% CPU, 3.3ms per frame
    
    Helps with #174
    0e0574a0