gnome-shell/js
Daniel van Vugt 0e0574a0b4 iconGrid: Eliminate JavaScript for painting/picking
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 https://gitlab.gnome.org/GNOME/gnome-shell/issues/174
2018-11-27 13:25:37 +00:00
..
extensionPrefs dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
gdm loginDialog: Stop using Shell.GenericContainer 2018-10-08 22:42:26 -03:00
misc ibusManager: Don't pass undefined callback to ibus 2018-11-17 12:15:46 +00:00
perf scripting: Fix argument list of createTestWindow() 2018-04-25 23:47:06 +02:00
portalHelper dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
ui iconGrid: Eliminate JavaScript for painting/picking 2018-11-27 13:25:37 +00:00
js-resources.gresource.xml build: Use dedicated resources for helper programs 2018-08-14 17:28:04 +00:00
meson.build build: Use dedicated resources for helper programs 2018-08-14 17:28:04 +00:00
portal-resources.gresource.xml build: Include params.js in portal-helper gresources 2018-10-23 15:38:31 +00:00
prefs-resources.gresource.xml build: Use dedicated resources for helper programs 2018-08-14 17:28:04 +00:00