protonscr

Steam client “System information” is ignoring relevant OpenGL version details

steamopen reviewed
ValveSoftware/steam-for-linux#4698 · opened 2016-11-09 by NotMrFlibble · updated 2018-10-22 · 9 comments · github
NNotMrFlibble 2016-11-09 github

Using Steam client beta, current as of report submission date, with local Linux and Mesa builds.

Info shown in the system information window:

Driver: X.Org Gallium 0.4 on AMD POLARIS10 (DRM 3.3.0 / 4.8.6, LLVM 4.0.0)
Driver Version: 3.0 Mesa 13.0.0
OpenGL Version: 3.0

This is technically correct, but is potentially misleading.

glxinfo reports

OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.3.0 / 4.8.6, LLVM 4.0.0)
OpenGL core profile version string: 4.3 (Core Profile) Mesa 13.0.0 (git-df1b0a5)
OpenGL core profile shading language version string: 4.30

and (this being where the ‘misleading’ version info comes from)

OpenGL version string: 3.0 Mesa 13.0.0 (git-df1b0a5)
OpenGL shading language version string: 1.30

(Full OpenGL 4.5 support is present but not reported as such in Mesa 13.0. I'm aware that this was a deliberate choice on the part of the developers.)

PPlagman 2016-11-10 github

Given we use a legacy context, this information is the most relevant to us, not the version reported when using a core context.

RRuedii 2016-11-23 github

This is clearly an interaction with a Mesa limitation.

If software opens a compatibility context in Mesa, it will receive an OpenGL 3.x context (the exact version depending on your driver.)

This is because in maintaining compatibility with older versions of OpenGL, especially OpenGL 1.2, adds bloat to the shader handler and generally reduces performance on OpenGL 4.x games. Additionally, it makes implementing certain extensions much harder. Because of these two reasons, Mesa chose to simply use a mode switch to save a lot of coding difficulty.

To solve this, for OpenGL systems the hardware survey should read both Compatibility Context and Core Context. This is much like Microsoft recommends reading Direct3D capabilities from Direct3D 8.x, 9.x, 9.8 and 10+ separately.

Furthermore since some "legacy" extensions and features aren't available in core contexts, while other newer ones aren't available in compatibility contexts, the capability surveys should provide information on both modes.

Additional things to check is capabilities when using GLE instead of GLX as well as GL-ES 2+ mode capabilities.

As a note, I would encourage Valve to push developers to transition to using GLE instead of GLX when possible. It has a smaller footprint, has less overhead, and is usually faster. However, since GLE isn't supported by all hardware yet, it needs to be an option, not required (much like Vulkan.)

TTele42 2016-11-23 github

Hello @Ruedii, just to check, are you referring to EGL?

RRuedii 2016-11-23 github

Yeah. Sorry.

NNotMrFlibble 2017-01-06 github

I've just checked what's reported in Big Picture mode – same there: compatibility context version only is reported. In both cases, I think that both core and compatibility versions need to be reported if they differ.

This is system capabilities, not merely what the Steam client happens to use.

RRuedii 2017-01-20 github

I also think ES capabilities, Vulkan capabilities, GLX capabilities and EGL
capabilities should be listed. This would give a comprehensive view of
system abilities. The same should be done on Windows, except for GLX being
replaced with Windows GL.

Focus should be put on key capabilities, like native texture modes
(including compression), native hardware sparse texture capability, and
maximum texture size. However keeping charts of support of all functions
might be useful for extended information.

On Jan 5, 2017 7:05 PM, "NotMrFlibble" [email protected] wrote:

I've just checked what's reported in Big Picture mode – same there:
compatibility context version only is reported. In both cases, I think that
both core and compatibility versions need to be reported if they differ.

This is system capabilities, not merely what the Steam client happens to
use.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ValveSoftware/steam-for-linux/issues/4698#issuecomment-270794453,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADBV6eI_009JIAtYz3KEIut7EM72dCFyks5rPYVBgaJpZM4KuBJ6
.

Sstevethepocket 2017-01-21 github

The whole point of the System Information window is to see how your setup compares to the System Requirements of any given game, isn't it? Then it really ought to reflect the true capabilities of everyone's setup. I daresay most Linux games say what OpenGL version they require, and plenty require higher than 3.0. People need to know this. Let's assume that not everyone who games on a Linux box knows about glxinfo, or that even those who do might not bother using it because they assume System Information is accurate.

Jjljusten 2017-02-03 github

I think this may also be an issue for the information gathered in the steam hardware survey. It doesn't look like the hw survey page shows OpenGL information, but if the information is provided to game devs, then it might not accurately reflect the capabilities of some drivers.

The source code for the glxinfo tool that reports both legacy and core profile information is available at: https://cgit.freedesktop.org/mesa/demos/tree/src/xdemos/glxinfo.c

Sstevethepocket 2018-10-22 github

Just dropping in to mention that this has been rendered far less serious by the latest Mesa version (included by default in Ubuntu 18.10), which has built-in compatibility profiles for everything up to 4.4. As such, System Information now lists the current OpenGL version as 4.4.