Bug 398692 - GCompris doesn't run on GeForce4 MX 440
Summary: GCompris doesn't run on GeForce4 MX 440
Status: RESOLVED FIXED
Alias: None
Product: gcompris
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Jazeix Johnny
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-16 06:17 UTC by Alkis Georgopoulos
Modified: 2019-04-21 15:24 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alkis Georgopoulos 2018-09-16 06:17:16 UTC
Hi, if I run gcompris on my Ubuntu MATE 18.04 system, that has a GeForce4 MX 440 graphics card, it doesn't start and it shows the following error:

QSGSimpleMaterialShader does not implement 'uniform highp mat4 qt_Matrix;' in its vertex shader

Are there any workarounds? There are hundreds of schools with such old cards...
Comment 1 Jazeix Johnny 2018-09-16 20:01:01 UTC
Hi,
as discussed on irc, I think the issue should be solved using the software renderer provided by Qt 5.8.

I've done 2 commits in master:
https://cgit.kde.org/gcompris.git/commit/?id=5015b56bc291f9e89f8946b904c1b74ba91d7598 to have new command line options software-renderer and opengl-renderer to switch the renderer.
https://cgit.kde.org/gcompris.git/commit/?id=a9282b2c9bf6fbd55c529c05500de68bdce17c9f that should display a window if openGL fails at start up and switch to software renderer after a restart (well, as I can't test, I supposed that the function is at least called and we can store in the settings the new mode)

Unfortunately, I can't test the second fix, so if by any chance you can compile from master and tell if it works, it would be nice.

Johnny
Comment 2 Alkis Georgopoulos 2018-09-17 06:43:29 UTC
I tried on an even older, Nvidia TNT2 card, and there it segfaults (stderr below).

But then I tried recompiling with -DGRAPHICAL_RENDERER=software in debian/rules, and it worked fine (and fast enough on that P4/3GHz CPU), except for some mouse cursor flickering.

I'll now try with the patch you attached.

The segfault before recompiling:
ltsp@ltsp97:~$ gcompris-qt
exeCount set to:  5
qml: enter main.qml (run #5, ratio=1.28, fontRatio=1.2944223775607213, dpi=96, sharedWritablePath=/home/ltsp/.local/share/GCompris)
Downloading resource file "data2/voices-ogg/voices-el.rcc"
Local resource is up-to-date: "voices-el.rcc"
Successfully registered resource "/home/ltsp/.cache/KDE/gcompris-qt/data2/voices-ogg/voices-el.rcc"
QOpenGLFramebufferObject: Framebuffer incomplete attachment.
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
QOpenGLFramebufferObject: Framebuffer incomplete attachment.
QOpenGLFramebufferObject: Framebuffer incomplete, missing attachment.
QOpenGLShader: could not create shader
QOpenGLShader: could not create shader
Σφάλμα κατάτμησης (segmentation fault) (core dumped)
Comment 3 Alkis Georgopoulos 2018-09-17 07:24:50 UTC
Another workaround:
LIBGL_ALWAYS_SOFTWARE=1 gcompris-qt

This avoids recompilation, although it still has mouse flicking on Nvidia TNT2.
I also tried a few vars from https://www.mesa3d.org/envvars.html but they didn't improve anything.
Comment 4 Jazeix Johnny 2018-12-21 15:31:26 UTC
Sorry for delay.
For the cursor, can you run gcompris-qt, with the command-line option 'c' ?
(./bin/gcompris-qt -c).
It should fallback to default cursor and not have a flickering one.
Comment 5 Jazeix Johnny 2019-04-21 15:24:47 UTC
There is now a --software-renderer option to avoid recompilation too