GLES 3.0 for Librem 5

I just install FluffyChat using FlatHub in my Byzantium backports environment (mesa 24.3.2) and can conclude that it works pretty well.

The side effect is I found dozens very nice apps written in flutter that I’d like to try :blush:

2 Likes

Thanks for your follow up @galilley

I should have mentioned that I’m on Mobian and perhaps assumed too early that it generally doesn’t work because of missing GLES 3.0 I didn’t dig deeper so far. Would you mind testing whether a binary compiled by me works for you flawlessly? :eyes:

If so, you could download the ARM build here: v0.13.0 - epinez/Energize - Codeberg.org

2 Likes

Looks like it works as expected…


Of course, gles3 is still not supported, but some of its critical parts are. So, Mesa version matter.

2 Likes
4 Likes

Thank you! :slightly_smiling_face: That’s really nice to hear. I’ll have a look at what’s the problem on Mobian

1 Like

I can not find this commit to follow it…

1 Like

Okay so here’s a quick follow up. tl;dr: export GDK_GL=gles needed.


Check mesa versions:

mobian@mobian:~/Downloads$ apt list --installed "mesa-*"       

mesa-libgallium/testing,now 25.0.3-1 arm64 [installed,automatic]
mesa-va-drivers/testing,now 25.0.3-1 arm64 [installed,automatic]
mesa-vdpau-drivers/testing,now 25.0.3-1 arm64 [installed,automatic]

Try to run app directly:

mobian@mobian:~/Downloads$ ./energize/energize 

(energize:2188): Gdk-CRITICAL **: 14:37:23.943: gdk_gl_context_make_current: assertion 'GDK_IS_GL_CONTEXT (context)' failed

** (energize:2188): WARNING **: 14:37:23.943: Failed to initialize GLArea: Unable to create a GL context

** (energize:2188): CRITICAL **: 14:37:23.970: FlutterEngineDisplayId fl_display_monitor_get_display_id(FlDisplayMonitor *, GdkMonitor *): assertion 'FL_IS_DISPLAY_MONITOR(self)' failed

** (energize:2188): CRITICAL **: 14:37:23.970: FlutterEngineDisplayId fl_display_monitor_get_display_id(FlDisplayMonitor *, GdkMonitor *): assertion 'FL_IS_DISPLAY_MONITOR(self)' failed

Try to run fluffychat directly (build from Github):

mobian@mobian:~/Downloads$ ./fluffychat 

(fluffychat:2754): Gdk-CRITICAL **: 14:53:15.412: gdk_gl_context_make_current: assertion 'GDK_IS_GL_CONTEXT (context)' failed

** (fluffychat:2754): WARNING **: 14:53:15.412: Failed to initialize GLArea: Unable to create a GL context

** (fluffychat:2754): WARNING **: 14:53:15.455: gtk.dart: failed to call method: No engine to send to

** (fluffychat:2754): WARNING **: 14:53:15.455: gtk.dart: failed to call method: No engine to send to

** (fluffychat:2754): WARNING **: 14:53:15.456: gtk.dart: failed to call method: No engine to send to

(fluffychat:2754): Gdk-CRITICAL **: 14:53:41.400: gdk_gl_context_make_current: assertion 'GDK_IS_GL_CONTEXT (context)' failed

** (fluffychat:2754): WARNING **: 14:53:41.400: Failed to uninitialize GLArea: Unable to create a GL context
embedder.cc (2429): 'FlutterEngineRemoveView' returned 'kInvalidArguments'. Engine handle was invalid.

(fluffychat:2754): GLib-GObject-CRITICAL **: 14:53:41.402: g_object_weak_unref: couldn't find weak ref 0xffffb3e89ba0(0xaaab184befc8)

Hmm, but why is the installed FluffyChat version via Flathub working?

mobian@mobian:~/Downloads$ grep Exec /var/lib/flatpak/exports/share/applications/im.fluffychat.Fluffychat.desktop

Exec=/usr/bin/flatpak run --branch=stable --arch=aarch64 --command=env --file-forwarding im.fluffychat.Fluffychat GDK_GL=gles fluffychat @@u %U @@

Ah, it’s setting the environment variable GDK_GL=gles
Can also be found in their Flathub manifest.

Run app again with env:

mobian@mobian:~/Downloads$ env GDK_GL=gles bash -c ./energize/energize

Gdk-Message: 15:10:11.935: Unable to load  from the cursor theme

<GUI plopping up and working>

Working hardware acceleration included.

2 Likes

While GLES 3.0 will just add power save on active-mode and not in inactive-mode and suspend-mode. We already have big issues on power save on inactive-mode and suspend-mode i hope it is bugs on software and not on hardware, if it is hadware-bug we need Librem 5 Fir Release to tackle this powersave erratas.

Librem 5 Still Wonderfull!

1 Like

I just curious if Gnu Emerald will be the first one with GLES3 native for L5. :anguished:

Amber
Byzantium
Crimson
Dawn
Emerald

1 Like
5 Likes

@austriancoder is a Super HERO!

6 Likes

@austriancoder bring support for compute-shaders(GPGPU) / Indirect-Drawing feature for Etnaviv.
please please. :pray: :pray: You are a Super Hero!.

Libobscura on gpgpu-accel @dcz ?

1 Like

Libobscura seems to be dead.

2 Likes

Thanks :pray: @austriancoder
THE REAL FUTURE FOR LIBREM 5 IT IS IN THE HANDS OF Christian Gmeiner. Otherwise the Librem 5 it would be a Museum Piece only.

5 Likes

Thank you for tracking this news and sharing it. This is awesome!

Do you or does anyone know what steps would be needed after Christian is done with his efforts to get this packaged and available for PureOS? I’m assuming Byzantium would be out of the picture, but maybe this could be included in Crimson or Dawn at the very least.

4 Likes

Not sure about crimson, but it definitely will be the goal for dawn.

5 Likes

Right now I have mesa 25.1.0 in Crimson backports that is quite new. I hope I will able to build the latest one when GLES3 comes into Debian repo.

4 Likes

To get ALL GTK4 acceleration it need also GTK4 >= 4.13.6 which is available by default on GNU Dawn not in GNU Crimson, even better gnu dawn can get dmabuf-video on GTK4.14 as Gnu Dawn ship gtk v4.18.6.

From GTK4.13.6 it using GLES3.0 acceleration by default. So yes tons features coming up to Librem 5 like Buttered scroll via pango render, massive low cpu and ram, 60 fps on gtk4 framework, dmabuff(maybe).

Recently @praveen.arimbrathodi shared a fancy feature from clapper like dmabuff-video feature, however this is not complete real as librem 5 still missing real gles3.0 support.

So yes it is time to bring a HDR monitor for Librem 5. I would like: HDR-LTPO, 720P, 90Hz, 340 PPI.

1 Like

OK i finally found the praveen thing what i said about:

So looks like it is not dmabuff-video_gst.video.1.24, but keeping clapper video-decode-hantro working under gles3-like on Librem5 in Mobian. I just didnt remembered myself well.

So what i know LVideo player support dmabuffvideo(newer fancy feature), i not sure about Clapper ATM.

1 Like

Looks like we’re going to need PureOS Dawn backports… :slight_smile:
Or just wait (and at least see what’s in the next update report this week)

4 Likes