Page MenuHomePhabricator

Improve scrolling performance
Open, WishlistPublic


This is something I would like to put on the TODO list for 2019 and not for next release.

We need to improve the scrolling performance of list/grid and stuff like that. The first thing that come to mind is to add an intermediate buffer do the rendering in it and move that buffer. There is some details there. You may actually want 2 or 3 buffers, so that you can move the buffer that just disappear on the top, become the one at the bottom, to avoid redrawing the buffer completely. You also want to draw only the visible bit of the buffer at this point to avoid having a big slow down when the buffer is shuffled from top to bottom. Finally when an object is not moving and is animated, you do not want to go through the intermediate buffer as this slow down rendering.

A potential easy solution for the last case, would be to use the hardware compositor if possible. Something that might be doable with Wayland and Hardware Plane support. If that was possible, it would make life easier as we wouldn't have to take the object out of the list buffer when animating and back in when scrolling.

cedric created this task.Dec 28 2018, 9:56 AM
cedric triaged this task as Wishlist priority.
cedric removed felipealmeida as the assignee of this task.Jan 24 2020, 4:01 PM
cedric added a subscriber: felipealmeida.

This is going to get pushed to forever, but the idea today would be to restore support for viewport inside Efl.Ui.CollectionView, then use a map or a proxy per viewport and move them around. Next step would be try to use HW acceleration as described using hardware plane and wayland ability to use subsurface.