Pleroma

phosh 0.13.0 is out 🚀 :
https://gitlab.gnome.org/World/Phosh/phosh/-/tags/v0.13.0

Improved call handling when shell is locked, lockscreen notifications, high contrast theme support and much more. Check the release notes.

@agx Sounds great, thank you for your work! I'm using phosh on a Pinephone via Manjaro. I really like it so far, but a most obvious issue to me is that the UI (including scrolling) behaves very slowly. Is this due to the Pinephone hardware (and faster on the Librem) or do you see possibilities to apply further optimization/hardware accleration or similar?

@letterus I don't have a pine phone so i can't compare. It e.g. depends on *where* things are slow since that's affected by e.g. pixman, mesa, if your distro's kernel trades CPU for battery live, etc... so it's hard to tell from here what the cause is.

@letterus there's also certainly areas within phosh that we can make faster or that will change in layout and hence use less resources (like the overview) but then again it depends on the details of the situation. If it's "overall slow" then it looks like a distro issue.

@letterus @agx Might be useful to collect some metrics on the system, CPU and GPU load and so on, but I'm not sure if the system has anything built-in.
Maybe start by logging top(1) output while doing a few things on the phone and see where it spends all its time that isn't available for handling scrolling? top -b -d 1 > top.log

@patrick @letterus sysprof is built-in for that.

@letterus @agx Most of apps you're likely to run under phosh (and also phosh itself) is still based on GTK3, and GTK3 is purely software rendered - PinePhone's slow memory bandwidth is a huge bottleneck there. It is noticeably snappier on the Librem 5 since its RAM is significantly faster.

One thing to check is whether arm64 optimizations are enabled in pixman build used by your distro, there is a patch that's not merged upstream that can make it a bit faster overall.

@dos @agx Thank you. Pure software rendering explains a lot of the behaviour I‘m seeing. 😉 So that would change with GTK4?

@letterus @agx Possibly. GTK4's GPU rendering isn't well optimized for mobile platforms, but it already got pretty usable in GTK 4.2. There will still be some work needed in order to keep slow GPU-rendered clients from making the whole compositor slow (like https://github.com/swaywm/wlroots/issues/3026), so there's no single silver bullet, but we'll get there eventually ;)

@dos @agx Thank you for your explanation! Keep up the good work!

@letterus @agx One more thing: a possible feature that could be added to phoc to make platforms like PinePhone faster even with software rendering is to render everything in smaller resolution and then upscale while displaying. This will of course make everything blurry or pixelated, but should make it very snappy even with underpowered hardware.

@dos @agx Hm. Not sure if that is a real feature. 😉

@letterus @agx Some people may strongly prefer snappiness over sharpness, so why not give them a choice? :)

@letterus @dos @agx It would be a reasonable workaround for hardware that isn't well balanced (e.g. too high resolution for the available memory bandwidth) - similar to removing compositor-level eyecandy on weak devices.

In an ideal world, the entire software stack would be suitably optimized. Until then, workarounds can help people make the jump (in this case even with the promise that the workaround could be disabled down the road if software catches up).
replies
1
announces
0
likes
1

@patrick @letterus @agx Such workaround would be opt-in anyway (unless a distro maintainer opts-in for you of course ;))

@dos @letterus @agx If that issue remains around for a while longer (e.g. because moving away from GTK3 takes a while) it might be worthwhile to consider making it a default on known-slow devices, maybe with a notification, to provide a better experience for first-time users.

I don't have studies at hand, but IIRC human eyesight is generally more tolerant to blur than to choppy motion, and there's only so much a user endures before rejecting a project as unfinished for a _long_ time.

@patrick @letterus @agx That would be something for system integrators/distro maintainers to decide and apply though, no need to have upstream phoc guessing user intention and hardware performance.