I downloaded the last driver, but with no hope
the same problem remain
What you’re not showing there is what version of OpenGL that lwjgl code is setting up and targeting…
Where?
Do you mean the lwjgl3 example program or the jmonkey program?
The lwjgl3 program. It has to be initializing a context somewhere. If you aren’t doing that yourself, track down where it’s coming from and see how it differs/what type of context it is.
Ok I’ll check this out and I’ll reply you back
I added System.out.println(GL11.glGetString(GL_VERSION)); to the program and it returned this
3.2.0 - Build 31.0.101.2114
Updated
Based on the docs, it says that
public static GLCapabilities createCapabilities(boolean forwardCompatible)
Creates a new
GLCapabilities
instance for the OpenGL context that is current in the current thread.Depending on the current context, the instance returned may or may not contain the deprecated functionality removed since OpenGL version 3.1. The
forwardCompatible
flag will force LWJGL to not load the deprecated functions, even if the current context exposes them.This method calls
setCapabilities(GLCapabilities)
with the new instance before returning.
@Ali_RS @sailsman63 @oxplay2
It worked after I replaced version 3.3.1 with 3.2.3, and when I omitted any logical condition with capabilities.OpenGL in “com.jme3.system.lwjgl.LwjglContext.initContext()” because it returns false anyway for all versions
what was the error again for GL version 3.3.1 ? (i mean when you skip logical condition)
so what you say is that older version work, but higher version dont?
can you also try like 4.5/etc
I put these to see the return values:
Summary
System.out.println("capabilities.OpenGL11= "+capabilities.OpenGL11);
System.out.println("capabilities.OpenGL12= "+capabilities.OpenGL12);
System.out.println("capabilities.OpenGL13= "+capabilities.OpenGL13);
System.out.println("capabilities.OpenGL14= "+capabilities.OpenGL14);
System.out.println("capabilities.OpenGL15= "+capabilities.OpenGL15);
System.out.println("capabilities.OpenGL20= "+capabilities.OpenGL20);
System.out.println("capabilities.OpenGL21= "+capabilities.OpenGL21);
System.out.println("capabilities.OpenGL30= "+capabilities.OpenGL30);
System.out.println("capabilities.OpenGL31= "+capabilities.OpenGL31);
System.out.println("capabilities.OpenGL32= "+capabilities.OpenGL32);
System.out.println("capabilities.OpenGL33= "+capabilities.OpenGL33);
System.out.println("capabilities.OpenGL40= "+capabilities.OpenGL40);
System.out.println("capabilities.OpenGL41= "+capabilities.OpenGL41);
System.out.println("capabilities.OpenGL42= "+capabilities.OpenGL42);
System.out.println("capabilities.OpenGL43= "+capabilities.OpenGL43);
System.out.println("capabilities.OpenGL44= "+capabilities.OpenGL44);
System.out.println("capabilities.OpenGL45= "+capabilities.OpenGL45);
System.out.println("capabilities.OpenGL46= "+capabilities.OpenGL46);
and it returns
Summary
capabilities.OpenGL11= false
capabilities.OpenGL12= false
capabilities.OpenGL13= false
capabilities.OpenGL14= false
capabilities.OpenGL15= false
capabilities.OpenGL20= false
capabilities.OpenGL21= false
capabilities.OpenGL30= false
capabilities.OpenGL31= false
capabilities.OpenGL32= false
capabilities.OpenGL33= false
capabilities.OpenGL40= false
capabilities.OpenGL41= false
capabilities.OpenGL42= false
capabilities.OpenGL43= false
capabilities.OpenGL44= false
capabilities.OpenGL45= false
capabilities.OpenGL46= false
when I use LWJGL version 3.3.1 with omitted the condition of capabilties produces this error
Summary
FATAL ERROR in native method: Thread[jME3 Main,5,main]: No context is current or a function that is not available in the current context was called. The JVM will abort execution.
at org.lwjgl.opengl.GL11C.nglGetString(Native Method)
at org.lwjgl.opengl.GL11C.glGetString(GL11C.java:978)
at org.lwjgl.opengl.GL11.glGetString(GL11.java:3100)
at com.jme3.renderer.lwjgl.LwjglGL.glGetString(LwjglGL.java:348)
at com.jme3.renderer.opengl.GLRenderer.loadCapabilitiesGL2(GLRenderer.java:211)
at com.jme3.renderer.opengl.GLRenderer.loadCapabilities(GLRenderer.java:619)
at com.jme3.renderer.opengl.GLRenderer.initialize(GLRenderer.java:640)
at com.jme3.system.lwjgl.LwjglContext.initContext(LwjglContext.java:242)
at com.jme3.system.lwjgl.LwjglContext.initContextFirstTime(LwjglContext.java:189)
at com.jme3.system.lwjgl.LwjglContext.internalCreate(LwjglContext.java:499)
at com.jme3.system.lwjgl.LwjglWindow.initInThread(LwjglWindow.java:586)
at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:704)
at java.lang.Thread.run(java.base@11.0.12/Thread.java:829)
but with LWJGL 3.2.3 it worked just fine but without the capabilities condition
So if it works fine with LWJGL 3.2.3 but does not work with LWJGL 3.3.1 then apparently there is a bug in LWJGL 3.3.1.
Can you also try with LWJGL 3.3.2-snapshot?
If the issue still exists in 3.3.2-snapshot then you may consider reporting the issue on the LWJGL GitHub page also.
It worked with 3.3.2-snapshot
Glad that worked
We have also another issue that apparently is fixed in 3.3.2-snapshot as well. I will update JME to use LWJGL 3.3.2 when it is released.
What about the issue this produces
It always returning false no matter what version I choose
Should I report it to them?
Update it fixed in the new version
capabilities.OpenGL11= true
capabilities.OpenGL12= true
capabilities.OpenGL13= true
capabilities.OpenGL14= true
capabilities.OpenGL15= true
capabilities.OpenGL20= true
capabilities.OpenGL21= true
capabilities.OpenGL30= true
capabilities.OpenGL31= true
capabilities.OpenGL32= true
capabilities.OpenGL33= true
capabilities.OpenGL40= false
capabilities.OpenGL41= false
capabilities.OpenGL42= false
capabilities.OpenGL43= false
capabilities.OpenGL44= false
capabilities.OpenGL45= false
capabilities.OpenGL46= false
Another update it stops at capabilities.OpenGL33 because of appSettings.setRenderer(AppSettings.LWJGL_OPENGL33);
It all works now
thank you all
ye, so looks like its definetly just LWJGL issue, but idk how they released it so broken.
so with 3.3.2 CAPS works and FATAL ERROR do not appear.
Tho i see:
capabilities.OpenGL33= true
capabilities.OpenGL40= false
capabilities.OpenGL41= false
capabilities.OpenGL42= false
capabilities.OpenGL43= false
capabilities.OpenGL44= false
capabilities.OpenGL45= false
capabilities.OpenGL46= false
while you have support for 40+ version too?
When I omitted the
// appSettings.setRenderer(AppSettings.LWJGL_OPENGL33);
it gives all true with exception of “46”
ah ok, then looks like all is fine with new version. Nice.
Ye, Thanks @Ali_RS for JME update issues. I hope this will be quickly fixed along with 1778 issue
and thanks @carpenter for detailed testing and debugging that really helped much.
I couldn’t do it without you all
What a great community you are
Thank you all