@rmader@floss.social
@rmader@floss.social avatar

rmader

@rmader@floss.social

Mostly #wayland stuff around #gnomeshell, #gstreamer, #Firefox, #Pipewire, #libcamera, #linuxmobile - https://floss.social/@collabora

Generally thing that make the Linux desktop use graphics hardware features. And sometimes random boosts.

Based in Berlin.

Member of the German green party.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

rmader, to linux
@rmader@floss.social avatar

Friends of energy efficiency - the Light Video 0.1.0 update is out, build with 4.14 and 1.24.1.

This should be the first app targeting the / FDO desktop enabling Wayland video offloading (think zero-copy playback) by default. In many cases (actually more than I expected) this can improve battery lifetime - and on low-end devices even playback performance - significantly.

https://flathub.org/apps/org.sigxcpu.Livi

rmader,
@rmader@floss.social avatar

This is kinda a technology preview in order to see if we can ship features like this enabled by default in a lot more apps in the ecosystem.

Thus I'd be very super happy if you'll try it on lots of hardware - be Intel/AMD laptops or ARM64 devices (with V4L2 stateless decoders, such as most devices).

Chances that you really hit a zero-copy path are highest with a recent compositor - i.e. if you are using , or a recent version of , , etc.

sonny, (edited ) to random
@sonny@floss.social avatar

Can't decide what to do to relax after an intense working day

5 minutes poll while I drink my tea

Choose wisely

rmader,
@rmader@floss.social avatar

@sonny That was a bit short :D

rmader, to GNOME
@rmader@floss.social avatar

For those who like me find themselves often listening radio on youtube during work - lofi stuff in my case - I can really recommend giving a try. If you search for a genre, chances are high that you get like 5-10 stations to choose from. And using a dedicated radio app has a bunch of benefits in different domains.

rmader, to random
@rmader@floss.social avatar

1.24 got released today and comes with explicit modifier support for DMABuf. Fittingly the MR to add support for that to the Gst plugin also just landed.

This fixes some long standing issues where things could terribly break - one example being encoding on Intel.

So if you have an app that you'd like to support screen sharing on Wayland (and uses ): the upcoming cycle will be a great time to start with that!

https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1881

rmader, to random
@rmader@floss.social avatar

Just found out that on one can add a + to an issue or MR link, making the preview show the whole title. I.e. instead of "" you get "Some thing is broken ()" - if you write "+"

So if you don't know, now you know 🤷

rmader, to linuxphones
@rmader@floss.social avatar

For those of you interested in our recent video offloading / zero-copy playback work: I quickly put together some s to make it easy to test stuff already. Compositor offloading should work on all semi-recent Intel/AMD and a variety of ARM64 devices.

If you trust the sandbox you can get them here:
https://cloud.silentundo.org/s/r8733siTjP4yRJp

I expect quite a few people hitting driver bugs, so please help tracking those down :)

A picture of a PinePhone Pro easily and smoothly playing a 4k@60fps VP9 video.

rmader,
@rmader@floss.social avatar

Things should generally work on , , and - not sure about other compositors.

I haven't tried myself yet as NV12 support was only added recently. But tomorrow there's a local release party where I hope to convince some people to try on their devices.

rmader,
@rmader@floss.social avatar

Note that offloading currently requires HW decoding - something I hope we can change next cycle. will display a little icon in the top-left if hardware decoding and thus offloading is not used.

Whenever HW decoding and offloading works I'd expect the player to be competitive to whatever other favorite player you have performance wise.

rmader,
@rmader@floss.social avatar

Everything in the Flatpak is either already upstream or close to it, the missing bits being

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5890

and

https://gitlab.gnome.org/guidog/livi/-/merge_requests/35

I hope to have both shipping with the upcoming spring release distros.

rmader,
@rmader@floss.social avatar

For those that are confused by the pictures in the first post because they know about the hardware limitations: yes, correct, both of them actually don't show zero-copy playback :P
One semi-surprising finding of the offloading work was that compositor offloading often pays off even when not hitting a full zero-copy path / hardware plane scanout.

rmader,
@rmader@floss.social avatar

In theory that gap shouldn't exist and we more or less have all APIs in place to let clients scale and pre-rotate content in a optimal way - i.e. so the compositor doesn't have to do a copy and we keep things to one single copy wherever zero-copy is impossible.

In practice there's lots of room for improvements in various stacks. With compositor offload we now have a basely of the minimal required GPU work (assuming compositors are fully optimized).

rmader,
@rmader@floss.social avatar

For those using HW that still uses the stateful V4L2 API for decoding - such as the - I uploaded another build to the link in the first post that includes a patch that is not close to landing, but works well enough to make playback work.

With that I can play 1080p30fps videos (the decoder limit) on my big screen smoothly, which otherwise not possible (apart from reducing the resolution).

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6114

The video shows a Gnome desktop running on a Raspberry Pi 4, using a screen with a resolution of 2560x1440 pixels. A 1080p@30fps video is played with the mentioned livi player build. While the video is choppy when the video overlay is visible, it becomes fully smooth once the overlay is hidden and zero-copy playback using the display controller hardware plane is used and the 3D engine can be skipped.

rmader, to GNOME
@rmader@floss.social avatar

My Mutter MR to support scaling and cropping via KMS landed in time for

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3177

I'm really happy about this one because it should improve things for multiple use-cases:

  1. It allows full hardware offloading of fullscreen video playback for cases when the video dimensions don't perfectly match the screen, i.e. up- or downscaling. There are not many clients supporting this yet - but hopefully we'll see more soon, especially ones.

Short 🧵

rmader, to GNOME
@rmader@floss.social avatar

My presentation about video offloading is online. If you are interested, you can watch it here: https://fosdem.org/2024/schedule/event/fosdem-2024-3557-the-state-of-video-offloading-on-the-linux-desktop/

I'm happy about feedback, both on the technical side as well as how I can improve doing presentations :)

rmader,
@rmader@floss.social avatar

@nekohayo It's a marten though ;)
And now translate that to German.

rmader, to random
@rmader@floss.social avatar

My talk about more efficient video playback on the desktop will start in about an hour - you can follow it at https://fosdem.org/2024/schedule/event/fosdem-2024-3557-the-state-of-video-offloading-on-the-linux-desktop/

rmader, to random
@rmader@floss.social avatar

My MR for the demo video player finally landed \o/

That means you if you build main on top of main, you can now run gtk4-demo --run=video_player and get zero-copy video playback - at least when using HW with VA-API support, i.e. Intel/AMD for now, and a compositor with YUV format support (most importantly NV12).

https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6618

rmader,
@rmader@floss.social avatar

I also made a quick port to @agx s Livi as its code base is pretty similar. So I hope we'll have one or two real video players making use of the passthrough feature by default for

https://gitlab.gnome.org/guidog/livi/-/merge_requests/35

rmader,
@rmader@floss.social avatar

Many ARM devices - those with V4L2-stateless HW video decoders - also work when building with these PoC patches: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5890

rmader,
@rmader@floss.social avatar

And the obligatory reminder: I'll do a presentation about all this at , hope to see you there :)

https://fosdem.org/2024/schedule/event/fosdem-2024-3557-the-state-of-video-offloading-on-the-linux-desktop/

cassidy, to GNOME
@cassidy@blaede.family avatar

Flathub has OVER A MILLION active users! 🎉

https://docs.flathub.org/blog/over-one-million-active-users-and-growing/

That's a nice new stat to reference when asking developers to bring their app to Flathub: it gets them in front of more than a million Linux users. 👀

#Flathub #Flatpak #GNOME #KDE #Linux #OpenSource

rmader,
@rmader@floss.social avatar

@cassidy Awesome! I have to assume that I'm like five of those, though :P

rmader, to random
@rmader@floss.social avatar

After some more debugging, here are two videos proving that / video playback with fullscreen GL/VK overlay works on a and / on / , each maxing out their video decoders with 1080p@60 and 4k@60 respectively.

The message here is: no matter what hardware - if you want to make a video/camera app that needs to be highly efficient, you can do it with a proper, yet still lightweight toolkit now. No need for a custom kms/drm backend.

The GTK4 demo video player on a Raspberry 4, playing BBB. The camera moves over to another screen with Weston debug output, showing that the compositor uses hardware planes, which is needed for optimal playback performance.
The GTK4 demo video player on a Pinebook Pro (using a RK3399 SoC), playing BBB. The camera moves over to another screen with Weston debug output, showing that the compositor uses hardware planes, which is needed for optimal playback performance.

rmader,
@rmader@floss.social avatar

Most of the things needed will be part of upstream in upcoming / / / releases, some things are still in the PoC stage, most importantly some patches for Gstreamer elements, see also my previous post: https://floss.social/@rmader/111738015095626519

rmader,
@rmader@floss.social avatar

One more thing probably worth mentioning: there's not really anything special happening here from a technical side - it's just that we haven't plugged things together like that before in the space. Thus there's bugs and small issues all over the place. But by ironing them out, it should become much easier for other toolkits, apps & compositors support the same. I.e. make the central display platform for and get over the whole X11 and native drm backend legacy.

agx, to linuxphones

I've released version 0.0.6 of livi - the little video player for mobile: https://gitlab.gnome.org/guidog/livi/-/releases/v0.0.6

While this also adds a bunch of new features like language and subtitle selection it mostly moved things closer to the designs. We have a wide mode for docked/desktop mode now and autohiding of panels, etc.

rmader,
@rmader@floss.social avatar

@agx looks like the version is still at 0.0.3 under the old name - mind making an MR or me doing it? :)
https://github.com/flathub/org.sigxcpu.Livi

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • GTA5RPClips
  • thenastyranch
  • ethstaker
  • everett
  • Durango
  • rosin
  • InstantRegret
  • DreamBathrooms
  • magazineikmin
  • Youngstown
  • mdbf
  • slotface
  • tacticalgear
  • anitta
  • kavyap
  • tester
  • cubers
  • cisconetworking
  • ngwrru68w68
  • khanakhh
  • normalnudes
  • provamag3
  • Leos
  • modclub
  • osvaldo12
  • megavids
  • lostlight
  • All magazines