Announcement

Collapse
No announcement yet.

AMD RX460 Open Driver can't run Minecraft with OpenGL 4 shaders. (shadersmod)

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

  • AMD RX460 Open Driver can't run Minecraft with OpenGL 4 shaders. (shadersmod)

    If a Minecraft Shader is using OpenGL 4 it doesn't work and this is logged:
    Code:
    0:1(10): error: GLSL 4.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, 3.10 ES, and 3.20 ES
    Is this because only the core profile version is 4.5 and the compat version is 3.0? Does that mean that i am only able to use OpenGL 1-3 or one version >3 in one application (this is how i understand it)?
    If i set MESA_GL_VERSION_OVERRIDE="4.0" in Minecraft it crashes logging this:
    Code:
    java.lang.IllegalStateException: Function is not supported
    at org.lwjgl.BufferChecks.checkFunctionAddress(BufferChecks.java:58)
    at org.lwjgl.opengl.GL11.glMatrixMode(GL11.java:2075)
    I think this indicates that Minecraft wants to use a function (glMatrixMode) not available in OpenGL 4 and crashes because of this.
    Are there any known plans on adding this compat version thing to the OSS Driver or am i stuck on OpenGL 3 shaders forever? (i don't think Mojang will ever switch to a newer OpenGL Version)

    amdgpu-pro is working but i'd rather not use it (because there is no GALLIUM_HUD and because of generally bad experiences with closed Drivers as the companies seem to loose all interst in maintaining them properly as soon as the product isn't sold anymore).

  • #2
    I was not able to find a definitive statement about whether or not Minecraft requests compatibility profiles but that does seem likely to be the issue.

    Compatibility profiles were introduced as a transition mechanism so that SW vendors could make use of a few new OpenGL functions while still maintaining access to older, now deprecated functions albeit in a vendor-specific way. The idea was to give ISVs time to update their code to make use of the new OpenGL core profiles, which would be able to ensure relatively consistent behaviour across vendors & drivers and allow HW vendors to focus on a cleaner & simpler OpenGL API.

    What actually happened, however, was that years later a number of apps are still requesting compatibility profiles, even if they do not actually make use of the ability to mix new and deprecated OpenGL functions in the same application.

    A couple of things to try:

    1. Tell Minecraft the driver supports compatibility profiles, eg "MESA_GL_VERSION_OVERRIDE=4.5C"

    2. Try over-riding the GLSL version string but not the GL version string, eg "MESA_GLSL_VERSION_OVERRIDE=4.5". I don't know if it will help but it would probably be less likely to crash.

    As a general rule compatibility profiles are viewed as a bit of an abomination and are implemented only in drivers aimed at the CAD workstation market, where use of compatibility profiles is still fairly high. Most other drivers only implement core profiles.
    Test signature

    Comment


    • #3
      Ok, then minecraft with OpenGL 4 shaders will be sadly not possible with the open driver because it does actually use OpenGL 1 and 4 in one program (some shaders for the shaders mod are using OpenGL 4 and Minecraft itself uses OpenGL 1-3). Unless someone writes a mod completely replacing the minecraft graphics code using OpenGL 4.

      Thanks for the clarification and the information that there no plans to implement compatibility profiles in the open driver.

      Comment


      • #4
        Originally posted by QuImUfu View Post
        ... because it does actually use OpenGL 1 and 4 in one program (some shaders for the shaders mod are using OpenGL 4 and Minecraft itself uses OpenGL 1-3). Unless someone writes a mod completely replacing the minecraft graphics code using OpenGL 4.
        The code would not have to go all the way to GL4 AFAIK - it's mostly the fixed-function GL1 operations which would need to be replaced with shader-based operations. The expectation was that developers would move to core profiles before they added significant new functionality using GL4 operations.
        Last edited by bridgman; 08 April 2017, 01:13 PM.
        Test signature

        Comment

        Working...
        X