ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.22k stars 174 forks source link

[Feature request] Show OpenGL Core info in the Steam System Information #3147

Open kwahoo2 opened 10 years ago

kwahoo2 commented 10 years ago

Current Steam System Information looks like

Karta graficzna:
Sterownik: X.Org Gallium 0.4 on AMD TURKS

Wersja sterownika: 3.0 Mesa 10.2.0-devel (git-020c43f saucy-oibaf-ppa)
Wersja OpenGL: 3.0
Głębia kolorów pulpitu: 24 bitów na piksel
Częstotliwość odświeżania monitora: 60 Hz
Ident. producenta: 0x1002
ID urządzenia: 0x6758
Liczba monitorów: 1
Liczba logicznych układów graficznych: 1
Rozdzielczość głównego ekranu: 1920 x 1080
Rozdzielczość pulpitu: 1920 x 1080
Rozmiar głównego ekranu: 20,91" x 11,77" (23,98" diag)

While glxinfo shows additional Core Profile info:

OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD TURKS
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.2.0-devel (git-020c43f saucy-oibaf-ppa)
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

Can we expand Steam client info?

mtmkls commented 10 years ago

I guess it's not a Linux-only problem, because there is no GL_ARB_compatibility on osx either.

TheRealCuran commented 10 years ago

Just a note: this also corrupts the hardware survey data you colletct from time to time. (And from a technical perspective, when implementing OpenGL, compatibility contexts are mostly painful for not much gain, if there is any at all.)

mauromi commented 9 years ago

imho is a bug because some game complain about compatibility with opengl using(?) the steam data (or they using the same wrong way to do that). Currently i'm in the same situation with Dying Light and when it start i see pop up that advise me that i need opengl 3.3 support, but i already have.

glxinfo | grep -i opengl
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD HAWAII
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.7.0-devel (git-ff0a41b 2015-07-04 vivid-oibaf-ppa)
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.0 Mesa 10.7.0-devel (git-ff0a41b 2015-07-04 vivid-oibaf-ppa)
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.7.0-devel (git-ff0a41b 2015-07-04 vivid-oibaf-ppa)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions
TheRealCuran commented 9 years ago

@mauromi: the problem is, that most games don't create Core Contexts and use the Compatibility Profile. Dying Light only sees OpenGL 3.0 which is the highest supported OpenGL level in the Compatibility Profile. The open source drivers will have higher levels only in the Core Profile.

Side note: I find it really surprising, that so many games do that, because on Mac OS X the situation is the same: Apple has the higher OpenGL levels only in the Core Profile.

Your only option would be to use the proprietary drivers, they offer the higher levels in both profiles. Though you have to deal with all the closed-source driver issues in return.

mauromi commented 9 years ago

Well i'm very ignorant in this area, but the game don't should start their engine with the best of existing GL checking both Compatibility and Core profile?

TheRealCuran commented 9 years ago

@mauromi: It's not that easy. Core and Compatibility profile have differences and if your engine relies on stuff only available in the less strict and more convoluted Compatibility Profile you can't just use a Core Profile without code changes. If you only need a Core Profile there is no need to check for a Compatibility Profile.

MrSchism commented 9 years ago

Your only option would be to use the proprietary drivers, they offer the higher levels in both profiles. Though you have to deal with all the closed-source driver issues in return.

That's probably why Valve recommends using the proprietary drivers.

TheRealCuran commented 9 years ago

@MrSchism Valve recommends what has the most features and/or is the officially supported driver by the IHV. See Intel where they recommend the open-source driver. With AMD it's a bit tricky: on the one hand AMD is officially supporting and developing the FLOSS driver stack, on the other hand Mesa still lacks some features compared to Fglrx/Catalyst. But the open-source driver for AMD "just works" while the proprietary one regularly blocks one update or the other of your graphics stack (should get better with an amdgpu-based Fglrx/Catalyst, though I'd still prefer the open drivers.

Apart from that Valve should really push game developers and engine vendors to adopt the Core Profile (they could even start by using it themselves for their own stuff). It's the only profile that is supported on all three platforms by all drivers (Apple doesn't support recent OpenGL versions outside of the Core Profile either and on Mac OS X the IHV's can't provide their own drivers). And from a software development standpoint, I find it much cleaner since some of the crazy stuff has been deprecated.

MrSchism commented 9 years ago

As far as I can tell, Intel's only got one driver: open source.

Tele42 commented 9 years ago

@TheRealCuran, Source 2 claims to support GL 3.3 core profile (GL 3.1 minimum), besides Dx9, Dx11, and soon Vulkan.

EoD commented 8 years ago

OpenGL requires only to specifiy a core profile: https://www.opengl.org/wiki/Core_And_Compatibility_in_Contexts

So it's not a matter of open source or not, it is a matter of properly reading the right variables.