gnome-shell/src/st
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
..
croco croco: Remove duplicated conditions 2020-04-27 16:23:46 +02:00
meson.build st: Remove BoxLayout child meta 2020-05-21 21:17:16 +00:00
st-adjustment.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 22:37:37 +00:00
st-adjustment.h st: Add transition API to StAdjustment 2019-08-07 18:40:44 +02:00
st-bin.c st: Remove deprecated Bin properties 2020-05-21 14:36:59 +02:00
st-bin.h st: Remove deprecated Bin properties 2020-05-21 14:36:59 +02:00
st-border-image.c st: always use GFile internally 2014-10-14 18:53:39 -07:00
st-border-image.h st: Use G_DECLARE_*_TYPE 2015-10-15 22:02:35 +02:00
st-box-layout.c st/box-layout: Fix gtk-doc comments 2020-05-25 18:43:30 +00:00
st-box-layout.h st/box-layout: Reimplement as a StViewport subclass 2020-01-20 16:15:32 -03:00
st-button.c st/button: Notify :pressed changes 2019-11-22 18:55:40 +01:00
st-button.h st/button: Add the clicked button to virtual function signature 2019-10-16 15:26:13 +00:00
st-clipboard.c st: Add st_clipboard_get_content() 2020-06-19 13:44:15 +02:00
st-clipboard.h st: Add st_clipboard_get_content() 2020-06-19 13:44:15 +02:00
st-drawing-area.c Remove ClutterAllocationFlags 2020-05-20 15:12:03 +02:00
st-drawing-area.h st: Use G_DECLARE_*_TYPE 2015-10-15 22:02:35 +02:00
st-entry.c st/entry: Fix leak when copying or cutting text using shortcuts 2020-06-08 15:21:17 +00:00
st-entry.h st: Make StEntry rely entirely on ClutterInputMethod/Focus 2018-02-05 17:46:57 +01:00
st-focus-manager.c st: Add StDirectionType enum 2019-01-30 22:50:01 +01:00
st-focus-manager.h st: Use G_DECLARE_*_TYPE 2015-10-15 22:02:35 +02:00
st-generic-accessible.c st: Remove wrong indentation 2015-10-05 12:04:55 +01:00
st-generic-accessible.h a11y: add a generic accessible 2013-08-28 16:05:54 +02:00
st-icon-colors.c st: Add st_icon_colors_equal() 2019-07-07 21:01:33 +00:00
st-icon-colors.h st: Add st_icon_colors_equal() 2019-07-07 21:01:33 +00:00
st-icon.c st/icon: Always show empty texture if both gicons are NULL 2020-04-04 16:20:35 +02:00
st-icon.h st/icon: Add API to set the fallback GIcon 2020-01-13 14:44:08 +01:00
st-image-content.c Stop referring to ClutterTexture 2019-11-12 22:05:13 +01:00
st-image-content.h st-image-content: Wrap ClutterImage with explicit preferred size 2019-03-01 17:12:52 +00:00
st-label.c st-label: Keep labels fully pre-rendered on the GPU 2020-06-25 09:09:36 +00:00
st-label.h st: Use G_DECLARE_*_TYPE 2015-10-15 22:02:35 +02:00
st-password-entry.c st/password-entry: Fix peek icon leak 2020-03-08 23:51:55 +01:00
st-password-entry.h StPasswordEntry: Add the peek-password-icon for show/hide passwords 2019-12-17 23:08:43 +01:00
st-private.c st: Update to new API for creating paint context 2020-04-23 14:46:03 +00:00
st-private.h st: Cleanup ST_PARAM_* and add WRITABLE version 2019-07-30 13:58:44 +00:00
st-scroll-bar.c st/scroll-bar: Fix horizontal bar in RTL locales 2020-06-17 01:08:03 +02:00
st-scroll-bar.h st: Use G_DECLARE_*_TYPE 2015-10-15 22:02:35 +02:00
st-scroll-view-fade.c st: Fix generated GLSL dependency 2019-12-20 21:02:45 +01:00
st-scroll-view-fade.glsl St: Fix fade effect 2013-09-18 20:01:49 +02:00
st-scroll-view-fade.h st: Use G_DECLARE_*_TYPE 2015-10-15 22:02:35 +02:00
st-scroll-view.c st/scroll-view: Adjust scroll events in RTL locales 2020-06-17 01:07:28 +02:00
st-scroll-view.h st: Add StPolicyType enum 2019-01-30 22:50:01 +01:00
st-scrollable.c Ensure G_PARAM_STATIC_STRINGS for all properties 2019-07-30 13:58:44 +00:00
st-scrollable.h st: Use G_DECLARE_*_TYPE 2015-10-15 22:02:35 +02:00
st-settings.c st/settings: Add API to inhibit animations 2020-02-20 11:14:55 +00:00
st-settings.h st/settings: Add API to inhibit animations 2020-02-20 11:14:55 +00:00
st-shadow.c st-shadow: Add a CoglFramebuffer argument 2019-01-28 12:35:54 -02:00
st-shadow.h st-shadow: Remove unnecessary ';' 2019-03-04 22:29:33 +00:00
st-texture-cache.c st/texture-cache: Cancel pending requests on icon-theme changes 2020-05-25 12:55:28 +02:00
st-texture-cache.h shell/app-system: Monitor for icon theme changes 2019-08-08 15:22:44 +00:00
st-theme-context.c st/theme-context: Also remove theme nodes on stylesheet changes 2020-04-28 19:53:58 +00:00
st-theme-context.h st/theme-context: Add a getter for the scale-factor property 2020-04-06 11:24:30 -03:00
st-theme-node-drawing.c st/theme-node: Use the node's scale factor 2020-04-06 11:24:30 -03:00
st-theme-node-private.h st/theme-context: Also remove theme nodes on stylesheet changes 2020-04-28 19:53:58 +00:00
st-theme-node-transition.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 22:37:37 +00:00
st-theme-node-transition.h st-theme-node: Paint elements in resource-scale scaled surfaces 2019-03-01 17:12:52 +00:00
st-theme-node.c st/theme-context: Also remove theme nodes on stylesheet changes 2020-04-28 19:53:58 +00:00
st-theme-node.h st-theme-node: Paint elements in resource-scale scaled surfaces 2019-03-01 17:12:52 +00:00
st-theme-private.h Include the libcroco sources directly under src/st/croco 2019-11-29 17:50:03 +00:00
st-theme.c st/theme: Remove entry from files_by_stylesheet after emitting signal 2020-05-21 20:59:35 +00:00
st-theme.h st: Drop StWidget theme overriding API 2019-11-05 12:36:28 +00:00
st-types.h st: Remove StIconType 2012-08-29 16:41:09 -03:00
st-viewport.c st/viewport: Fix horizontal translation in RTL locales 2020-06-16 23:57:51 +02:00
st-viewport.h Introduce StViewport 2020-01-20 16:15:22 -03:00
st-widget-accessible.h StWidgetAccessible: accessibility support for StWidget 2011-01-20 12:56:46 +01:00
st-widget.c st: Don't leak st_describe_actor strings 2020-06-18 14:10:59 +08:00
st-widget.h Adapt to painting and picking API change 2019-12-03 19:07:15 +00:00
st.h.in build: Support the meson build system 2017-07-20 00:20:54 +02:00
test-theme.c test-theme: Check return value of chdir() 2020-04-21 15:00:23 +02:00
test-theme.css test-theme: Stop using ClutterCairoTexture 2019-02-26 03:04:00 +01:00