Open kwahoo2 opened 10 years ago
I guess it's not a Linux-only problem, because there is no GL_ARB_compatibility on osx either.
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.)
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
@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.
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?
@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.
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.
@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.
As far as I can tell, Intel's only got one driver: open source.
@TheRealCuran, Source 2 claims to support GL 3.3 core profile (GL 3.1 minimum), besides Dx9, Dx11, and soon Vulkan.
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.
Current Steam System Information looks like
While glxinfo shows additional Core Profile info:
Can we expand Steam client info?