[Solved] Turning on gamma correction causes crash

Setting gamma correction on crashes everything.

Environment:

  • Windows 8.1 32 bit
  • 64 bit processor
  • JME 3.3.2-stable
  • jme sdk 3.2.4-stable-sdk1
  • Intel integrated graphics

Error:

An OpenGL error has occurred!
OpenGLException: Invalid enum (1280)

Test code:
(Just a basic application, just make sure to check gamma correction in the display settings)

import com.jme3.app.SimpleApplication;

public class Test extends SimpleApplication {
    
    public static void main( String... args ) {
        Test main = new Test();
        main.start();
    }        
    
    @Override
    public void simpleInitApp() {

    } 
}

I’ve been reading up on gamma correction in jme3, and everywhere recommends turning it on and not letting it be turned on (by the user).

Even if this is just my computer (and it’s hardware) causing the issue, what does this mean for the recommendation of always leaving it on?

I mean, I can have it on by default as recommended, and always parse cli to turn it off, but then that leaves some users in a position where they need to do extra steps just to get it to run, and even then, from what I’ve read and seen, it will not look right, and could even be unplayable.

I’ve also seen this thread with the exact same exception, but it seems the cause for that was too big a texture being loaded, but in my case, there are no textures being loaded.

There’s also a few threads saying it may be a graphics driver bug, but I’ve ran other (non jme) games on this same computer without issue.

Setting settings.putBoolean("GraphicsDebug", true) yields the output:

Jan 22, 2021 1:39:51 AM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.3.2-stable
 * Branch: HEAD
 * Git Hash: 1a05e3f
 * Build Date: 2020-04-27
Jan 22, 2021 1:39:52 AM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: LWJGL 2.9.3 context running on thread jME3 Main
 * Graphics Adapter: igdumdim32
 * Driver Version: 10.18.10.3643
 * Scaling Factor: 1
Jan 22, 2021 1:39:52 AM com.jme3.renderer.opengl.GLRenderer loadCapabilitiesCommon
INFO: OpenGL Renderer Information
 * Vendor: Intel
 * Renderer: Intel(R) HD Graphics
 * OpenGL Version: 4.0.0 - Build 10.18.10.3643
 * GLSL Version: 4.00 - Build 10.18.10.3643
 * Profile: Compatibility
[JME3] OpenGL debug message
       ID: 1280
       Source: API
       Type: ERROR
       Severity: HIGH
       Message: GL error GL_INVALID_ENUM
java.lang.Exception: Stack trace
	at java.lang.Thread.dumpStack(Thread.java:1336)
	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:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.jme3.renderer.opengl.GLDebug.invoke(GLDebug.java:107)
	at com.sun.proxy.$Proxy0.glGetBoolean(Unknown Source)
	at com.jme3.renderer.opengl.GLRenderer.getBoolean(GLRenderer.java:602)
	at com.jme3.renderer.opengl.GLRenderer.setMainFrameBufferSrgb(GLRenderer.java:3184)
	at com.jme3.system.lwjgl.LwjglContext.initContextFirstTime(LwjglContext.java:291)
	at com.jme3.system.lwjgl.LwjglContext.internalCreate(LwjglContext.java:424)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:117)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:213)
	at java.lang.Thread.run(Thread.java:748)
Jan 22, 2021 1:39:52 AM com.jme3.app.LegacyApplication handleError
SEVERE: Failed to create display
com.jme3.renderer.RendererException: An OpenGL error occurred - Invalid enum argument (Error Code: 1280)
	at com.jme3.renderer.opengl.GLDebug.checkError(GLDebug.java:101)
	at com.jme3.renderer.opengl.GLDebug.invoke(GLDebug.java:113)
	at com.sun.proxy.$Proxy0.glGetBoolean(Unknown Source)
	at com.jme3.renderer.opengl.GLRenderer.getBoolean(GLRenderer.java:602)
	at com.jme3.renderer.opengl.GLRenderer.setMainFrameBufferSrgb(GLRenderer.java:3184)
	at com.jme3.system.lwjgl.LwjglContext.initContextFirstTime(LwjglContext.java:291)
	at com.jme3.system.lwjgl.LwjglContext.internalCreate(LwjglContext.java:424)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:117)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:213)
	at java.lang.Thread.run(Thread.java:748)

Jan 22, 2021 1:39:52 AM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.IllegalMonitorStateException
	at java.lang.Object.notifyAll(Native Method)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:128)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:213)
	at java.lang.Thread.run(Thread.java:748)


Exception: java.lang.reflect.UndeclaredThrowableException thrown from the UncaughtExceptionHandler in thread "jME3 Main"

This output says SEVERE: Failed to create display, which is a little confusing since the window does show up for a second, and even in my game, the full menu, with the scene and UI, loads and displays, right before the crash.

Does anyone know what’s going on here?

All help greatly appreciated!

1 Like

Myself idk whats the issue(need to wait for someone who knows), but in meantime can you try using GammaCorrectionFilter ?

  • you also enable gamma correction setting.
  • you add renderer.setMainFrameBufferSrgb(false);
  • you add GammaCorrectionFilter into filters.

its in wiki below part about Gamma correction.

Tho GammaCorrectionFilter seems deprecated, but maybe it will help find the issue.

1 Like

What’s interesting is that on the web I see some threads that suggest that the app will still run with this error. (which also seems to be born out by the fact that your menus show up) Apparently you can get the error and things will still work… but JME is dying when detecting the error and so we never get to see. (or lwjgl is)

It’s unfortunate that intel GPUs seem to always be flaky.

Another thing you can try is switching to lwjgl3 instead of lwjgl2.

1 Like

Ill give that a shot, but I want to try @pspeed’s suggestion of using lwjgl3 first (even though GammaCorrectionFilter is already on my ToDo :man_shrugging: )

Ya, it is interesting. I can catch that OpenGL error to prevent the app from closing and still have a functioning menu, complete with cheesy rotating background and working quit button, but as soon as I, say, try to open my settings menu or run my little template game, the crash hits.

Very. I run Reicast and project64 no problem on this computer. But at the same time, this issue doesn’t happen on my computer with Radeon graphics.

Will definitely give that a try. I’m all for making everything as up to date as possible before development gets too deep. I’ll report back here after I test with lwjgl3

The OpenGLException you’re seeing is also the symptom of a couple JME issues I’ve encountered in the past, both of which were supposedly fixed in JME v3.3.2:

  1. issue 794
  2. issue 1360

Another thing to try: turn off assertions. That may allow the application to simply run to completion.

1 Like

So, I think I left a foot-gun laying around somewhere, because simple changing

runtimeOnly 'org.jmonkeyengine:jme3-lwjgl:' + jmonkeyengineVersion  // LWJGL 2.x    
//runtimeOnly 'org.jmonkeyengine:jme3-lwjgl3:' + jmonkeyengineVersion // LWJGL 3.x

to

//runtimeOnly 'org.jmonkeyengine:jme3-lwjgl:' + jmonkeyengineVersion  // LWJGL 2.    
runtimeOnly 'org.jmonkeyengine:jme3-lwjgl3:' + jmonkeyengineVersion // LWJGL 3.x

made me shoot myself in the foot.
I get

Uncaught exception thrown in Thread[main,5,main]
UnsatisfiedLinkError: Failed to locate library: lwjgl.dll

And no amount of --refresh-dependencies or deleting the cache seems to make gradle put it back.
I’m gonna dig into this and try and figure out this dependency issue, but if anyone has any pointers, they’re gladly welcomed! Even though, I feel like I’ve been here before

Much appreciated! I looked into those, and it looks promising, but I currently have to drag myself out of dependency hell before I can get to that lol. I will let you know what I find here

1 Like

this is the important line

at com.jme3.renderer.opengl.GLRenderer.setMainFrameBufferSrgb(GLRenderer.java:3184)

(on current master i guess its line 3232)
It seems like jme uses the gl_ext_framebuffer_srgb way to see if the default framebuffer supports srgb.

if (!getBoolean(GLExt.GL_FRAMEBUFFER_SRGB_CAPABLE_EXT)) {

and to make sure this is only called if the gl implementation supports it, few lines earlier a check for the caps is made:

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

            return;
}

however this cap is initially added if the following condition is true:

if ( (hasExtension("GL_ARB_framebuffer_sRGB") && hasExtension("GL_EXT_texture_sRGB"))
                || caps.contains(Caps.OpenGL30) ) {
            caps.add(Caps.Srgb);
}

but gl_arb_framebuffer_srgb changed the way of determining whether the default framebuffer supports srgb and thus no longer needs the constant

FRAMEBUFFER_SRGB_CAPABLE_EXT                 0x8DBA

which means for implementations that dont support gl_ext_framebuffer_srgb, this enum is always an invalid enum and will generate a gl error. usually this is not neccessarily a problem, the error can just be cleared, however jme seems to throw an exception (which it should if setGraphicsDebug is set to true). i wonder though why this exception is triggered in the first place if you do not setGraphicsDebug(true) because i though jme only calls glGetError in GLDebug

so your default framebuffer probably supports srgb, jme just doesnt check it the right way, however since enabling srgb didnt change from gl_ext_framebuffer_srgb to gl_arb_framebuffer_srgb, it can be enabled normally and will render as expected, as long as jme doesnt throw an exception

but in the meantime, especially since all the getBoolean(GLExt.GL_FRAMEBUFFER_SRGB_CAPABLE_EXT)) check does is log a message in case it returns false, i guess just commenting out the if block is fine

EDIT: to see if this is the case you can also print all extensions in the GLRenderer say in the initialize method around line 610 and see if it prints gl_ext_framebuffer_srgb, only gl_arb_framebuffer_srgb or none
EDIT: you can also check the value of settings.getRenderer() say in the simpleInit method of your app

3 Likes

Did you try deleting the DLLs from the current working directory where you run the app?

1 Like

Ya I tried deleting them too, it seems that gradle doesn’t make a lwjgl.dll for lwjgl3, because switching back to lwjgl2, the dll pops up right away, but as soon as I switch to lwjgl3, the dll is gone and doesn’t get replaced. Not sure if it’s a jme3 issue or lwjgl3 issue.

I got the dll to download, I had to delete the cache then restart the sdk, might be an issue with the gradle plugin.

But now that I have lwjgl3, with no other changes (not much going on in the first place other than the main menu in Lemur), I get this:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x07b87744, pid=4436, tid=0x00000344
#
# JRE version: OpenJDK Runtime Environment (8.0_212-b04) (build 1.8.0_212-b04)
# Java VM: OpenJDK Client VM (25.212-b04 mixed mode windows-x86 )
# Problematic frame:
# V  [jvm.dll+0xc7744]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\Jasmathan\Projects\test\hs_err_pid4436.log
#
# If you would like to submit a bug report, please visit:
#   
#

Not sure what to make of it. Is there an extra step to using lwjgl3 that I missed?

For now, I guess I’ll try to make it work with lwjgl2 until I figure out lwjgl3

Output is: LWJGL-OpenGL2

How would I do that exactly?

In your initial post when you mentioned

Can you please post the full stack trace? Not the one with GraphicsDebug set to true

Clone the engine and some simple

List<String> ext = new ArrayList<>(extensions);
Collections.sort(ext);
for (String e : ext) {
  System.out.println(e);
}

In initialize around line 610 in GLRenderer will do it, alternatively if you didn’t yet clone the engine and just made it out of dependency-jungle you can use reflection to get access to the GLRenderers extension field

And your hs_err_pid4436.log file I’m sure will contain interesting information also, might be worth sharing

EDIT just realized lwjgl has an assert checkGLError in the runLoop method of LwjglAbstractWindow, however the lwjgl3 pendant doesn’t have such assertion in its runLoop method

1 Like

Sure thing, using jme3.3.2, sdk 3.2.4, lwjgl2, gamma correction on, and no GaphicsDebug.
First error window:

Uncaught exception thrown in Thread[jME3 Main,5,main]
IllegalMonitorStateException

Second error window:

Failed to create display
RendererException: An OpenGL error occurred - Invalid enum argument (Error Code: 1280)

Full console output:

Executing: gradle :run
Arguments: [-PmainClass=test.engine.Test, -PcmdLineArgs=, -PjvmLineArgs=, -c, C:\Users\Jasmathan\Projects\TestGradle\settings.gradle]

LWJGL-OpenGL2
Jan 23, 2021 12:38:24 AM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.3.2-stable
 * Branch: HEAD
 * Git Hash: 1a05e3f
 * Build Date: 2020-04-27
Jan 23, 2021 12:38:25 AM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: LWJGL 2.9.3 context running on thread jME3 Main
 * Graphics Adapter: igdumdim32
 * Driver Version: 10.18.10.3643
 * Scaling Factor: 1
Jan 23, 2021 12:38:25 AM com.jme3.renderer.opengl.GLRenderer loadCapabilitiesCommon
INFO: OpenGL Renderer Information
 * Vendor: Intel
 * Renderer: Intel(R) HD Graphics
 * OpenGL Version: 4.0.0 - Build 10.18.10.3643
 * GLSL Version: 4.00 - Build 10.18.10.3643
 * Profile: Compatibility
[JME3] OpenGL debug message
       ID: 1280
       Source: API
       Type: ERROR
       Severity: HIGH
       Message: GL error GL_INVALID_ENUM
java.lang.Exception: Stack trace
	at java.lang.Thread.dumpStack(Thread.java:1336)
	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:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.jme3.renderer.opengl.GLDebug.invoke(GLDebug.java:107)
	at com.sun.proxy.$Proxy0.glGetBoolean(Unknown Source)
	at com.jme3.renderer.opengl.GLRenderer.getBoolean(GLRenderer.java:602)
	at com.jme3.renderer.opengl.GLRenderer.setMainFrameBufferSrgb(GLRenderer.java:3184)
	at com.jme3.system.lwjgl.LwjglContext.initContextFirstTime(LwjglContext.java:291)
	at com.jme3.system.lwjgl.LwjglContext.internalCreate(LwjglContext.java:424)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:117)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:213)
	at java.lang.Thread.run(Thread.java:748)
Jan 23, 2021 12:38:25 AM com.jme3.app.LegacyApplication handleError
SEVERE: Failed to create display
com.jme3.renderer.RendererException: An OpenGL error occurred - Invalid enum argument (Error Code: 1280)
	at com.jme3.renderer.opengl.GLDebug.checkError(GLDebug.java:101)
	at com.jme3.renderer.opengl.GLDebug.invoke(GLDebug.java:113)
	at com.sun.proxy.$Proxy0.glGetBoolean(Unknown Source)
	at com.jme3.renderer.opengl.GLRenderer.getBoolean(GLRenderer.java:602)
	at com.jme3.renderer.opengl.GLRenderer.setMainFrameBufferSrgb(GLRenderer.java:3184)
	at com.jme3.system.lwjgl.LwjglContext.initContextFirstTime(LwjglContext.java:291)
	at com.jme3.system.lwjgl.LwjglContext.internalCreate(LwjglContext.java:424)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:117)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:213)
	at java.lang.Thread.run(Thread.java:748)

Jan 23, 2021 12:38:25 AM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.IllegalMonitorStateException
	at java.lang.Object.notifyAll(Native Method)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.initInThread(LwjglAbstractDisplay.java:128)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:213)
	at java.lang.Thread.run(Thread.java:748)


Exception: java.lang.reflect.UndeclaredThrowableException thrown from the UncaughtExceptionHandler in thread "jME3 Main"

BUILD SUCCESSFUL in 53s
69 actionable tasks: 68 executed, 1 up-to-date

I’m not really able to do that, between potato internet and me having about 1.4gb free on this computer

Sorry, I know how to work reflection, but how would I get information out of the renderer?

I tried commenting it here, but it’s too big to put here. Ill see about making a gist or something to get it to you

So, it seems that error log isn’t around any more, and I can’t seem to get another one generated (I’m honestly not sure what made it in the first place). If I find it or get it reproduced, I’ll make a gist and link to it here. I regret being so jumpy to close tabs now haha.

Edit: I remember what generated the error log, it was when I tried to lwjgl3, I’ll have the gist linked in a second

Thanks for sharing the full console output, however I’m wondering why the stack trace still mentions GLDebug class, it should only wrap around the gl classes if setGrahpicsDebug is true I thought

About reflection its just a couple of lines getting the declared field of the rendered and reading it but I’m on my phone and the 5 lines from last reply were a pain already so you would have to wait until I’m on a pc lol
EDIT here we go:

        try {
            Field extensionField = renderer.getClass().getDeclaredField("extensions");
            extensionField.setAccessible(true);
            
            HashSet<String> extensions = (HashSet<String>) extensionField.get(renderer);
            List<String> ext = new ArrayList<>(extensions);
            Collections.sort(ext);
            for (String e : ext) {
                System.out.println("EXTENSION: " + e);
            }
        } catch (Exception ex) {
            System.out.println("nope");
        }

Regarding lwjgl3, as it doesn’t have the assertion in its runLoop method, if you setGraphicsDebug(false) this one should run fine for you even with assertions enabled
EDIT yes lwjgl3 crashes for you but I guess that crash is not related to the gamma correction thing

1 Like

Here’s the link to the gist:

That log is trying to run lwjgl3

Hmm, your right. I re-ran that one, and here’s the output:

Executing: gradle :run
Arguments: [-PmainClass=test.engine.Test, -PcmdLineArgs=, -PjvmLineArgs=, -c, C:\Users\Jasmathan\Projects\TestGradle\settings.gradle]

LWJGL-OpenGL2
Jan 23, 2021 1:06:33 AM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.3.2-stable
 * Branch: HEAD
 * Git Hash: 1a05e3f
 * Build Date: 2020-04-27
Jan 23, 2021 1:06:35 AM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: LWJGL 2.9.3 context running on thread jME3 Main
 * Graphics Adapter: igdumdim32
 * Driver Version: 10.18.10.3643
 * Scaling Factor: 1
Jan 23, 2021 1:06:35 AM com.jme3.renderer.opengl.GLRenderer loadCapabilitiesCommon
INFO: OpenGL Renderer Information
 * Vendor: Intel
 * Renderer: Intel(R) HD Graphics
 * OpenGL Version: 4.0.0 - Build 10.18.10.3643
 * GLSL Version: 4.00 - Build 10.18.10.3643
 * Profile: Compatibility
Jan 23, 2021 1:06:35 AM com.jme3.renderer.opengl.GLRenderer setMainFrameBufferSrgb
WARNING: Driver claims that default framebuffer is not sRGB capable. Enabling anyway.
Jan 23, 2021 1:06:35 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Renderer Information
 * Device: OpenAL Soft
 * Vendor: OpenAL Community
 * Renderer: OpenAL Soft
 * Version: 1.1 ALSOFT 1.15.1
 * Supported channels: 64
 * ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
 * AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
Jan 23, 2021 1:06:35 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
WARNING: Pausing audio device not supported.
Jan 23, 2021 1:06:35 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio effect extension version: 1.0
Jan 23, 2021 1:06:35 AM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio max auxiliary sends: 4
Jan 23, 2021 1:06:36 AM com.jme3.app.LegacyApplication handleError
SEVERE: An OpenGL error has occurred!
org.lwjgl.opengl.OpenGLException: Invalid enum (1280)
	at org.lwjgl.opengl.Util.checkGLError(Util.java:59)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.checkGLError(LwjglAbstractDisplay.java:138)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:159)
	at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:193)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:234)
	at java.lang.Thread.run(Thread.java:748)


BUILD SUCCESSFUL in 22s
69 actionable tasks: 69 executed

I had commented out the GLDebug line, and I think jme3 remembered it from the last run

I get you haha. Especially understand I’m on my phone ... a pain already lol. I’ll try and see if I can figure it out, but if I haven’t mentioned it by the time you hit your pc, then I’m thoroughly lost and could probably do with some help haha

Ya, the lwjgl3 wasn’t related to the gamma correction, it was just me trying another route

So, after playing around with trying to get lwjgl3 to work, and digging through forums, I think the issue with lwjgl3 is the dll being in the jar? Well, either way, I’m giving up on trying to use lwjgl3. I’ll focus on trying to figure out why gamma correction isn’t working with lwjgl2

So I tried disabling assertions, and I get the same error.

I turned off assertions by passing -da to jvm

1 Like