You are not logged in.

#1 2020-03-22 14:31:19

imrehg
Member
From: London, UK
Registered: 2008-04-10
Posts: 108
Website

OpenGL version reported older if hardware acceleration is used on i915

Hi!

I was tracking down an issue that didn't let me start a unity3D game on Arch, while in a VirtualBox in Ubuntu on the same machine it worked totally fine. Seems it needs OpenGl 3.x, but when checking for support, it seemed something weird. If I check for OpenGL version, I get:

~> glxinfo | grep "OpenGL version" 
OpenGL version string: 2.1 Mesa 19.3.4

but if I force it to be software only:

~> LIBGL_ALWAYS_SOFTWARE=1 glxinfo | grep "OpenGL version"
OpenGL version string: 3.1 Mesa 19.3.4

and if I start the game with "LIBGL_ALWAYS_SOFTWARE=1", it runs totally fine.

I looked in the wiki, but didn't see any info on this, shouldn't there be some hardware setting that would allow using OpenGL 3.1 out of the box without software? Or it's really old hardware on my end? Using a Lenovo X201, i915 graphics.

Any hints of what might be going on (since I'm likely missing something) is appreciated!

Offline

#2 2020-03-22 17:31:45

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: OpenGL version reported older if hardware acceleration is used on i915

The command that you are using to find out your OpenGL version is incorrect, it will only show the core profile. What's the output of...

glxinfo | grep 'version'

No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#3 2020-03-22 18:13:48

imrehg
Member
From: London, UK
Registered: 2008-04-10
Posts: 108
Website

Re: OpenGL version reported older if hardware acceleration is used on i915

The output of that whole thing is:

~> 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: 2.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 2.0
OpenGL version string: 2.1 Mesa 19.3.4
OpenGL shading language version string: 1.20
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 19.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16

and using the env var as above:

~> LIBGL_ALWAYS_SOFTWARE=1 glxinfo | grep "version"       
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
    Max core profile version: 3.3
    Max compat profile version: 3.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL core profile version string: 3.3 (Core Profile) Mesa 19.3.4
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.1 Mesa 19.3.4
OpenGL shading language version string: 1.40
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 19.3.4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
    GL_EXT_shader_implicit_conversions, GL_EXT_shader_integer_mix, 

What should be the part to look for in there?

Offline

#4 2020-03-22 18:17:34

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,645

Re: OpenGL version reported older if hardware acceleration is used on i915

Everythings fine here, you definitely don't have the hardware for this.

Offline

#5 2020-03-22 18:25:20

imrehg
Member
From: London, UK
Registered: 2008-04-10
Posts: 108
Website

Re: OpenGL version reported older if hardware acceleration is used on i915

Okay, thanks!
Does that mean that I'll have to prepend every run of OpenGL-using software wit "LIBGL_ALWAYS_SOFTWARE=1" to force software rendering? (or I guess setting in my shell). Is there any other way, without env vars to tell the relevant software to not try to use hardware rendering at all?

Offline

#6 2020-03-22 18:46:49

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,645

Re: OpenGL version reported older if hardware acceleration is used on i915

Environment variable is the guaranteed way, and you probably shouldn't set this globally (the perf characteristics for software that doesn't require OGL3+ are still likely to be better than forcing everything to software), what's the problem with environment variables?

Offline

#7 2020-03-22 19:01:19

imrehg
Member
From: London, UK
Registered: 2008-04-10
Posts: 108
Website

Re: OpenGL version reported older if hardware acceleration is used on i915

These are good pointers, thanks.

My concern with the env var is that in this case I will have to start Steam with or without this env var depending on which game to play (and remember what the variable is). Basically it's more overhead and more things to remember.

Offline

#8 2020-03-22 19:04:31

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,645

Re: OpenGL version reported older if hardware acceleration is used on i915

You can configure launch commands for games that require it within Steam itself where you can add that variable as needed: https://wiki.archlinux.org/index.php/St … ch_options

Offline

#9 2020-03-22 19:11:45

imrehg
Member
From: London, UK
Registered: 2008-04-10
Posts: 108
Website

Re: OpenGL version reported older if hardware acceleration is used on i915

I know about that and tried before posting here and couldn't make it work, but re-reading things after you linked it again, I was using Launch Options incorrectly. Setting it up as

LIBGL_ALWAYS_SOFTWARE=1 %command%

indeed works as intended (missed the "%command%" part before), much appreciated!

Offline

#10 2020-03-23 12:42:27

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,911

Re: OpenGL version reported older if hardware acceleration is used on i915

Intel iGPU started supporting OpenGL 3.x in hardware with generation 6 , your iGPU is probably older.
See https://en.wikipedia.org/wiki/List_of_I … sing_units .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

Board footer

Powered by FluxBB