Daniel van Vugt ae338af1e8 st-label: Keep labels fully pre-rendered on the GPU
The performance of the icon grid was being hindered by a large number
of primitives (a few hundred) being copied from the CPU to the GPU on
each frame. This was first noticed in mutter#971 but we failed to
investigate all the issues at the time.

You can also see the high number using `COGL_DEBUG=batching` or
`COGL_DEBUG=disable-texturing`. So now it's obvious that high number is
every letter of every label being uploaded as a separate quad. Let's not
do that and instead treat the whole label as a single quad/texture.

Measured performance on an i7-7700 at UHD 3840x2160:

Journal entries per frame on the icon grid:
 * Before: 288 (18 KB copied from CPU to GPU)
 * After:   73 ( 4 KB copied from CPU to GPU)

Spring animation:
 * Before: 20-30 FPS, avg 22/peak 45 milliseconds per frame
 * After:  30-40 FPS, avg 14/peak 28 milliseconds per frame

Scrolling the icon grid:
 * Before: 15 FPS, 50 milliseconds per frame
 * After:  30 FPS, 28 milliseconds per frame

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1329
2020-06-25 09:09:36 +00:00
..
2020-04-27 16:23:46 +02:00
2020-05-21 21:17:16 +00:00
2020-05-21 14:36:59 +02:00
2020-05-21 14:36:59 +02:00
2015-10-15 22:02:35 +02:00
2019-11-22 18:55:40 +01:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2013-09-18 20:01:49 +02:00
2015-10-15 22:02:35 +02:00
2019-01-30 22:50:01 +01:00
2015-10-15 22:02:35 +02:00
2019-03-04 22:29:33 +00:00
2012-08-29 16:41:09 -03:00
2020-01-20 16:15:22 -03:00
2017-07-20 00:20:54 +02:00