Announcement

Collapse
No announcement yet.

rx 470 with just opengl 3.0?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • rx 470 with just opengl 3.0?

    recently, I managed to install steam...but when i tray to test some linux compatible game, I have noticed that I only have opengl 3.0 support on amdgpu drivers


    ~ $ glxinfo | egrep -i opengl
    OpenGL vendor string: X.Org
    OpenGL renderer string: AMD Radeon (TM) RX 470 Graphics (AMD POLARIS10 / DRM 3.18.0 / 4.13.2-gentoo, LLVM 5.0.0)
    OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.0
    OpenGL core profile shading language version string: 4.50
    OpenGL core profile context flags: (none)
    OpenGL core profile profile mask: core profile
    OpenGL core profile extensions:
    OpenGL version string: 3.0 Mesa 17.2.0
    OpenGL shading language version string: 1.30
    OpenGL context flags: (none)
    OpenGL extensions:
    OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.2.0
    OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10






  • #2
    Originally posted by papu View Post
    OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.0
    OpenGL core profile shading language version string: 4.50
    That's 4.5 with the OpenGL Core profile.

    The OpenGL Compatibility profile is basically a "legacy - compatible" version of OpenGL and it's not very well specified how all of the legacy functionality should interact with the new OpenGL extensions, plus it's a huge hassle to implement, so mesa opted to not do it beyond OpenGL 3.0. Some games and applications only query for the compatibility profile version of OpenGL and then show OpenGL 3.0... In general games and applications should avoid the OpenGL Compatibility profile and specifically create an OpenGL context using the OpenGL Core profile.

    Almost all do but for the rare exceptions you can set the environment variables
    MESA_GL_VERSION_OVERRIDE=4.5COMPAT
    MESA_GLSL_VERSION_OVERRIDE=450
    and mesa will fake support of the OpenGL 4.5 Compatibility Profile. Most of the applications that require the compatibility profile will actually work with that because they don't make any use of the legacy features and should really switch to a core profile and it's often a mystery why they haven't done so.

    And last are the applications that do crash or render something completely broken when you try them with those environment variables. Those applications are just not supported by mesa. Fortunately there are very few of these around.

    Comment


    • #3
      Originally posted by haagch View Post
      That's 4.5 with the OpenGL Core profile.

      The OpenGL Compatibility profile is basically a "legacy - compatible" version of OpenGL and it's not very well specified how all of the legacy functionality should interact with the new OpenGL extensions, plus it's a huge hassle to implement, so mesa opted to not do it beyond OpenGL 3.0. Some games and applications only query for the compatibility profile version of OpenGL and then show OpenGL 3.0... In general games and applications should avoid the OpenGL Compatibility profile and specifically create an OpenGL context using the OpenGL Core profile.

      Almost all do but for the rare exceptions you can set the environment variables
      MESA_GL_VERSION_OVERRIDE=4.5COMPAT
      MESA_GLSL_VERSION_OVERRIDE=450
      and mesa will fake support of the OpenGL 4.5 Compatibility Profile. Most of the applications that require the compatibility profile will actually work with that because they don't make any use of the legacy features and should really switch to a core profile and it's often a mystery why they haven't done so.

      And last are the applications that do crash or render something completely broken when you try them with those environment variables. Those applications are just not supported by mesa. Fortunately there are very few of these around.
      papu@localhost ~ $ glxinfo | egrep -i version
      server glx version string: 1.4
      client glx version string: 1.4
      GLX version: 1.4
      Version: 17.2.0
      Max core profile version: 4.5
      Max compat profile version: 3.0
      Max GLES1 profile version: 1.1
      Max GLES[23] profile version: 3.1
      OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.0
      OpenGL core profile shading language version string: 4.50
      OpenGL version string: 3.0 Mesa 17.2.0
      OpenGL shading language version string: 1.30
      OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.2.0
      OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

      ok then something like inside of .bashrc, isen't it?
      export MESA_GL_VERSION_OVERRIDE=4.5COMPAT
      export MESA_GLSL_VERSION_OVERRIDE=450

      is this sintaxis the correct forf the exportation? because in mesa3d.org it seems diferent:
      MESA_GL_VERSION_OVERRIDE - changes the value returned by glGetString(GL_VERSION) and possibly the GL API type.
      • The format should be MAJOR.MINOR[FC]
      • FC is an optional suffix that indicates a forward compatible context. This is only valid for versions >= 3.0.
      • GL versions < 3.0 are set to a compatibility (non-Core) profile
      • GL versions = 3.0, see below
      • GL versions > 3.0 are set to a Core profile
      • Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC
        • 2.1 - select a compatibility (non-Core) profile with GL version 2.1
        • 3.0 - select a compatibility (non-Core) profile with GL version 3.0
        • 3.0FC - select a Core+Forward Compatible profile with GL version 3.0
        • 3.1 - select a Core profile with GL version 3.1
        • 3.1FC - select a Core+Forward Compatible profile with GL version 3.1
      • Mesa may not really implement all the features of the given version. (for developers only)




      i supose that deleting this again my system return to actual profile...? in case problems arise

      thanks.
      Last edited by papu; 16 September 2017, 04:13 AM.

      Comment


      • #4
        Yes, export variable=value only affects the current shell and child processes. If you put it in .bashrc every bash shell your user starts is setting this variable and if you remove it every shell started after that will not set it.

        And yes, that is the syntax but I don't know if I would do that. There seem to be games that will only try to use some compatibility profile features when the driver claims to support it. People reported that behavior for Dying Light - apparently it works correctly (with recent mesa), but only when not using the MESA_GL_VERSION_OVERRIDE=4.5COMPAT override...

        Comment


        • #5
          this not make the steam game to work... pff wait and wait ...

          Comment

          Working...
          X