Vivante GPU and OpenGL 3 / Vulkan

Thank you @amosbatto for pointing me in the right direction. It’s definitely something I can look into. I’m no stranger to compiling and installing code on Linux, but this driver might be a little more tricky. Going from my experience with NVIDIA + nouveau and a few SBC’s (like odroid), you may have to blacklist the etnaviv driver and modify the kernel’s device tree (dtb) or something like that. Also, some drivers need to be signed with a pre-trusted certificate or else the kernel will reject it. I ran into that issue when trying to compile and install a custom version of a certain wireless card driver in CentOS.

I just tried running repo sync and I can’t find the drivers/mxc/gpu-viv directory, so maybe you need to download the i.MX 8M Quad EVK​ to get the proprietary driver, which you can find here:
https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX

(When I tried to download it, it tells me that it can’t verify my email anymore and won’t let me download it.)

1 Like

Wondering if anyone has yet succeeded in making OpenGL ES 3 work on the Librem 5? Did it work to install the proprietary driver?

@dpacbach, Phoronix reported in Sept. 2020 that Christian Gmeiner was working on OpenGL ES 3 support in the Etnaviv driver for the GC7000Lite GPU.

However, if you watch his presentation from Sept. 2021, Gmeiner says at the end of this presentation that there are a number of things that are higher priority than enabling OpenGL ES 3, and he talks about how Etnaviv coding is a hobby that he does in his free time and how he needs more volunteers, because COVID-19 has cut back the number of employees at companies which contribute to Etnaviv:

It strikes me that people like Gmeiner are unsung heroes, and they need a lot more support than they get.

3 Likes

Thank you for that info, I guess as a short term solution it might be worth it to try to get the proprietary driver working, if only to allow developing OpenGL ES 3 applications for the Librem 5 until then open-source version is implemented.

The first step is for someone who has a company email to register with NXP and then download the proprietary file and post it so the rest of us can use it. NXP only accepts company email addresses, and I no longer have an address that works with NXP.

It seems like OpenGL ES 3 support has gotten closer than ever but no ETA yet. But Christian Gmeiner is still working on it.

4 Likes

I think this feature becomes a real problem as GTK4 doesn’t provide any GL Context for GLES 2.0

Many softwares dont work anymore after an update (gtk4-demos for example).

Do we have any news about these developments ?

1 Like

This bug report #1104029 - etnaviv: please add support for texelfetch for Vivante GC7000 (MNT Reform and Pocket Reform) - Debian Bug report logs suggests there is already a patch that makes clapper work. I’m right now building mesa with this patch and hope to provide an update soon.

5 Likes

Thank you Praveen for taking care of that regression! Much appreciated.

1 Like

Nice, that’s good news

1 Like

Though clapper is still failing with updated mesa and the environment variable suggested in the bug report :cry: If anyone wants to try, mesa with the patch is available at Index of /~praveen/mobian

2 Likes

Maybe set a target for an older Mobian version? Since PureOS is not the current version of Mobian anyway.

1 Like

In fact I observe this bug in my backports too. It appears since gtk-4.17 which is required by phosh-0.45. Not by phosh, by xdg-portal-phosh that provides a nice dialogs to select a file and so on.

3 Likes

Yay! It is now working with MESA_GLES_VERSION_OVERRIDE=3.0 environment variable and my patched version of mesa!

@agx suggested this here Guido Günther: „@austriancoder@fosstodon.org @praveen@social.mast…“ - ruhr.social

4 Likes

Could you give the link for your patch? I will try to apply it for backports. :pray:

1 Like

I could get it working from command line, but not able to figure out how to do it via desktop file. I copied the desktop file from /usr/share/applications to .local/share/applications and edited Exec line to /home/user/bin/clapper and in ~/bin/clapper I have,

#!/bin/sh
export MESA_GLES_VERSION_OVERRIDE=3.2
clapper "$@"

But when starting clapper by clicking on the icon and entering a URL it crashes - passing url from command line works (I have added this variable in ~/.bashrc also).

3 Likes

So, I applied the mentioned merge request to mesa 24.3.2 and it did the job! Clapper 0.8.0 works fine with Byzantium backports and MESA_GLES_VERSION_OVERRIDE=3.2.

3 Likes

Byz too old, Crim please.

1 Like

Just updated, welcome for testing!

2 Likes