Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
Benutzeravatar
hikaru
Beiträge: 10450
Registriert: 09.04.2008 12:48:59

Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Beitrag von hikaru » 10.07.2019 23:25:30

Hallo,

als ersten Testrechner habe ich meinen uralten Asus EEE 901 auf Buster/i386 umgestellt, per Minimalinstallation ohne Recommends und Suggests mit Xfce.

Nachdem das Lebenswichtige funktioniert wollte ich etwas Spaß haben, also habe ich Debianwidelands installiert, was mir beim Startversuch jedoch folgende Meldung ausspuckt:

Code: Alles auswählen

$ widelands --verbose
This is Widelands Version build-19 (Release)
Set home directory: /home/hikaru/.widelands
There's no configuration file, using default values.
Adding directory: /usr/share/games/widelands/data
selected language: (system language)
using locale de_DE.UTF-8
Graphics: Try to set Videomode 800x600
glewInit returns 1
Your OpenGL installation must be __very__ broken. Missing GL version

Caught exception (of type '10WException') in outermost handler!
The exception said: [/build/widelands-4kN6ex/widelands-19+repack/src/graphic/gl/initialize.cc:90] glewInit returns 1: Broken OpenGL installation.

This should not happen. Please file a bug report on version build-19(Release).
and remember to specify your operating system.
Nun steht in [1], dass Widelands 19 gern OpenGL 2.1 hätte, was mein uralter GMA-950-Chip laut glxinfo unterstützen sollte:

Code: Alles auswählen

$ glxinfo | grep version
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
    Max core profile version: 0.0
    Max compat profile version: 1.4
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 2.0
OpenGL version string: 2.1 Mesa 18.3.6
OpenGL shading language version string: 1.20
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 18.3.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
Die GPU gibt sich leider nur über den Chipsatz zu erkennen, und zwar so:

Code: Alles auswählen

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GSE Express Integrated Graphics Controller (rev 03)
Irgendwo hatte ich aufgeschnappt, dass OpenGL 2.1 auf dem alten Chip wohl zweifelhaft wäre, aber ich meine, das müsste funktionieren, denn ich habe noch ein anderes Notebook mit der gleichen GPU, auf der Stretch/amd64 läuft und da läuft Widelands (ebenfalls schon Build 19) problemlos und spuckt beim Start das aus:

Code: Alles auswählen

$ widelands --verbose
This is Widelands Version build-19 (Release)
Set home directory: /home/hikaru/.widelands
Adding directory: /usr/share/games/widelands/data
selected language: (system language)
using locale de_DE.UTF-8
Graphics: Try to set Videomode 1280x800
Graphics: OpenGL: Version "2.1 Mesa 13.0.6"
Graphics: SDL_GL_RED_SIZE is 8
Graphics: SDL_GL_GREEN_SIZE is 8
Graphics: SDL_GL_BLUE_SIZE is 8
Graphics: SDL_GL_ALPHA_SIZE is 8
Graphics: SDL_GL_BUFFER_SIZE is 32
Graphics: SDL_GL_DOUBLEBUFFER is 1
Graphics: SDL_GL_DEPTH_SIZE is 24
Graphics: SDL_GL_STENCIL_SIZE is 8
Graphics: SDL_GL_ACCUM_RED_SIZE is 0
Graphics: SDL_GL_ACCUM_GREEN_SIZE is 0
Graphics: SDL_GL_ACCUM_BLUE_SIZE is 0
Graphics: SDL_GL_ACCUM_ALPHA_SIZE is 0
Graphics: SDL_GL_STEREO is 0
Graphics: SDL_GL_MULTISAMPLEBUFFERS is 0
Graphics: SDL_GL_MULTISAMPLESAMPLES is 0
Graphics: SDL_GL_ACCELERATED_VISUAL is 1
Graphics: SDL_GL_CONTEXT_MAJOR_VERSION is 2
Graphics: SDL_GL_CONTEXT_MINOR_VERSION is 1
Graphics: SDL_GL_CONTEXT_FLAGS is 0
Graphics: SDL_GL_CONTEXT_PROFILE_MASK is 2
Graphics: SDL_GL_SHARE_WITH_CURRENT_CONTEXT is 0
Graphics: SDL_GL_FRAMEBUFFER_SRGB_CAPABLE is 0
Graphics: OpenGL: Double buffering enabled
Graphics: OpenGL: Max texture size: 2048
Graphics: OpenGL: ShadingLanguage: "1.20"
**** GRAPHICS REPORT ****
 VIDEO DRIVER x11
 pixel fmt 370546692
 size 1280 800
**** END GRAPHICS REPORT ****
SoundHandler closing times 1, freq 22050, format 32784, chan 2
SDL_AUDIODRIVER alsa
Minimalinstallationen (gerade ohne Recommends uns Suggests) sind ja immer so eine Sache. Da ich aber beide Notebooks so installiert habe, maße ich mir da etwas Erfahrung an, und zur Sicherheit hatte ich auch nochmal die Ausgaben von dpkg -l unter Stretch [2] und Buster [3] verglichen und tatsächlich ein paar mesa-Pakete unter Buster nachinstalliert. Das führte aber nicht zum Erfolg.

Nun hatte ich aufgeschnappt, dass seit Mesa 17.1 auf alten Intel-Chips die OpenGL-Unterstützung zurückgefahren wurde, weil wohl Google Chrome damit nicht klar kam. [4] Das ließe sich wohl mit einem Eintrag in /etc/drirc (unter Debian: /usr/share/drirc.d/00-mesa-defaults.conf) umgehen [5][6], was ich so eingetragen habe und woher (vermutlich inzwischen bestätigt) die Ausgabe für OpenGL 2.1 aus glxinfo stammt.

Weiß jemand, wie ich Widelands hier wieder zum Laufen bringen kann?


[1] https://launchpad.net/widelands/+announcement/14350
[2] NoPaste-Eintrag40787
[3] NoPaste-Eintrag40788
[4] https://www.phoronix.com/scan.php?page= ... nGL-2-Drop
[5] https://wiki.archlinux.org/index.php/In ... 915_driver
[6] http://distro.ibiblio.org/fatdog/web/fa ... pengl.html


Benutzeravatar
hikaru
Beiträge: 10450
Registriert: 09.04.2008 12:48:59

Re: Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Beitrag von hikaru » 11.07.2019 21:35:26

Ein "Backport" des letzten Widelands-18-Build aus den Snapshots [1] funktioniert auch unter Buster.
Ebenso funktioniert das aktuelle Build-19-Paket aus Buster, wenn ich den Patch [2] der Debianmesa seinerzeit "verstümmelt" hat wieder rauspatche und einen Mesa-Backport daraus baue.

Was mache ich damit? Ist das ein Bugreport gegen Widelands oder Mesa?
Momentan tendiere ich dazu, für mich persönlich Mesa zu patchen.


[1] http://snapshot.debian.org/package/wide ... 18-3:2b:b6
[2] https://lists.freedesktop.org/archives/ ... 42487.html

Benutzeravatar
MartinV
Beiträge: 709
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Beitrag von MartinV » 11.07.2019 22:28:44

Danke für die Dokumentation, auch wenn ich Dir kaum raten kann.

Wenn das Spiel nur wenig GPU-Leistung braucht, könntest Du es auch mit Software Rendering betreiben, z.B. in Xephyr oder auf einem anderen TTY.
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
hikaru
Beiträge: 10450
Registriert: 09.04.2008 12:48:59

Re: Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Beitrag von hikaru » 11.07.2019 22:45:40

Wenn ich das richtig sehe braucht Build 19 zwingend OpenGL. Die Option für Software-Rendering die bis Build 18 in den Einstellungen war, gibt es nicht mehr. Ich meine auch im Changelog zu Build 19 gelesen zu haben, dass nun OpenGL 2.1 vorausgesetzt wird.

Benutzeravatar
MartinV
Beiträge: 709
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Beitrag von MartinV » 11.07.2019 22:58:20

Ich glaube, wir mißverstehen uns: Software Rendering bietet auch OpenGL, aber unabhängig von der GPU-Hardware. Deshalb könnte damit eine höhere OpenGL-Version möglich sein, ohne daß Du irgend etwas patchen mußt. Die Performance leidet natürlich, weil die CPU dann alles leisten muß.

Du könntest schauen, welche OpenGL Version Du in Xephyr bekommst:

Code: Alles auswählen

xinit xterm -- /usr/bin/Xephyr :1
Im xterm Fenster:

Code: Alles auswählen

glxinfo | grep OpenGL
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
hikaru
Beiträge: 10450
Registriert: 09.04.2008 12:48:59

Re: Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Beitrag von hikaru » 12.07.2019 00:11:07

Ja, da hatte ich dich missverstanden. Unter Xephyr kriege ich OpenGL 3.1:

Code: Alles auswählen

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 7.0, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.3.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 18.3.6
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.3.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
Wie lasse ich Widelands in Software rendern, abgesehen davon, es in Xephyr zu starten?

Benutzeravatar
MartinV
Beiträge: 709
Registriert: 31.07.2015 19:38:52
Wohnort: Hyperion
Kontaktdaten:

Re: Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Beitrag von MartinV » 12.07.2019 09:00:10

hikaru hat geschrieben: ↑ zum Beitrag ↑
12.07.2019 00:11:07
Wie lasse ich Widelands in Software rendern, abgesehen davon, es in Xephyr zu starten?
Du brauchst einen X server, der keinen Hardwaretreiber lädt.
Wie das mit Xorg ginge, weiß ich nicht auf Anhieb, das bräuchte wahrscheinlich eine angepaßte Xorg.conf, um das automatische Laden des Treibers zu unterbinden.

Mit Xephyr wäre es am einfachsten.
Enweder mit x11docker:

Code: Alles auswählen

x11docker --desktop --fullscreen --exe widelands
Kürzer:

Code: Alles auswählen

x11docker -dfe widelands
Oder ohne x11docker:
Datei widelands.xinitrc:

Code: Alles auswählen

#! /bin/sh
widelands
Starten mit:

Code: Alles auswählen

xinit widelands.xinitrc -- /usr/bin/Xephyr :2 -fullscreen
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

Benutzeravatar
hikaru
Beiträge: 10450
Registriert: 09.04.2008 12:48:59

Re: Buster, Widelands, Intel GMA 950: "Your OpenGL installation must be __very__ broken. Missing GL version"

Beitrag von hikaru » 12.07.2019 09:19:05

MartinV hat geschrieben: ↑ zum Beitrag ↑
12.07.2019 09:00:10
Du brauchst einen X server, der keinen Hardwaretreiber lädt.
Natürlich ginge das, aber das wird ja konzeptuell immer hässlicher:
Ich habe eine GPU, die im Prinzip OpenGL 2.1 kann, jedenfalls ausreichend gut, um Widelands zufriedenzustellen. Weil aber bei Mesa(/Widelands?) jemand halbgares Zeug gecodet hat, kann ich das nicht nutzen.
Statt nun den problematischen Code zu fixen könnte ich das Problem umgehen, indem ich gar kein OpenGL der GPU nutze, sondern der schwächlichen Atom-CPU auch noch die Grafik aufhalse (nicht, dass das bei Widelands viel ausmachen würde). Dafür muss ich aber einen extra X-Server aufsetzen, weil zumindest meines Wissens nach Widelands anders nicht die Nutzung des GPU-OpenGL ausgetrieben werden kann.

Antworten