Skip to content

getBoolean(GLExt.GL_FRAMEBUFFER_SRGB_CAPABLE_EXT) causes error 1280 (invalid enum) on Windows #2460

Description

@capdevon

The problem occurs by running class TestTessellationShader with gammaCorrection = true on Windows 11

https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java#L3492

    @Override
    public void setMainFrameBufferSrgb(boolean enableSrgb) {
        // Gamma correction
        if (!caps.contains(Caps.Srgb) && enableSrgb) {
            // Not supported, sorry.
            logger.warning("sRGB framebuffer is not supported " +
                    "by video hardware, but was requested.");

            return;
        }

        setFrameBuffer(null);

        if (enableSrgb) {
            if (
                // Workaround: getBoolean(GLExt.GL_FRAMEBUFFER_SRGB_CAPABLE_EXT) causes error 1280 (invalid enum) on macos
                JmeSystem.getPlatform().getOs() != Platform.Os.MacOS
                && !getBoolean(GLExt.GL_FRAMEBUFFER_SRGB_CAPABLE_EXT)
            ) {
                logger.warning("Driver claims that default framebuffer " + "is not sRGB capable. Enabling anyway.");
            }

            gl.glEnable(GLExt.GL_FRAMEBUFFER_SRGB_EXT);

            logger.log(Level.FINER, "SRGB FrameBuffer enabled (Gamma Correction)");
        } else {
            gl.glDisable(GLExt.GL_FRAMEBUFFER_SRGB_EXT);
        }
    }
INFO: OpenGL Renderer Information
 * Vendor: Intel
 * Renderer: Intel(R) Iris(R) Xe Graphics
 * OpenGL Version: 4.0.0 - Build 32.0.101.5763
 * GLSL Version: 4.00 - Build 32.0.101.5763
 * Profile: Core
[JME3] OpenGL debug message
        ID: 1280
        Source: API
        Type: ERROR
        Severity: HIGH
        Message: Error has been generated. GL error GL_INVALID_ENUM in GetBooleanv: (ID: 659224037) Generic error
java.lang.Exception: Stack trace
	at java.base/java.lang.Thread.dumpStack(Thread.java:2209)
	at com.jme3.system.lwjgl.LwjglGLDebugOutputHandler.handleMessage(LwjglGLDebugOutputHandler.java:76)
	at org.lwjgl.opengl.GL11.nglGetBooleanv(Native Method)
	at org.lwjgl.opengl.GL11.glGetBoolean(GL11.java:1321)
	at com.jme3.renderer.lwjgl.LwjglGL.glGetBoolean(LwjglGL.java:287)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at com.jme3.renderer.opengl.GLDebug.invoke(GLDebug.java:107)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    tracked

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions