MovingBlocks / Terasology

Terasology - open source voxel world
http://terasology.org
Apache License 2.0
3.64k stars 1.32k forks source link

[macOS Sonoma] Crash "No context is current or a function that is not available in the current context was called" #5242

Open a-ivanov opened 1 month ago

a-ivanov commented 1 month ago

General Info

Terasology Launcher Version: Launching from IDE Terasology Version: develop branch (commit 33dabf53cc675c33a2c33c193b7ec4aa1cc0174b) Operating System: macOS Sonoma 14.4.1 Onboard / Dedicated Graphics: Intel UHD Graphics 630 (x86_64) Java Version: Liberica JDK 17.0.6

What you were trying to do

Launched app from IntelliJ Idea with game (gradle) configuration and created a new Singleplayer game.

What actually happened

Game crashed. Tried TerasologyPC for Mac configuration with no success. The same commit runs smoothly on Windows 10 though.

How to reproduce

  1. Select Terasology version commit 33dabf53cc675c33a2c33c193b7ec4aa1cc0174b
  2. Start Terasology with game (gradle) (or TerasologyPC for Mac)
  3. Select gameplay 'Singleplayer'
  4. Add modules 'CoreSampleGameplay'
  5. Start game
  6. See error

Log details

...
09:33:01.804 [main] INFO  o.t.e.r.dag.RenderTaskListGenerator - ----- OutputToScreenNode
09:33:01.804 [main] INFO  o.t.e.r.dag.RenderTaskListGenerator -                 EnableMaterial: CoreRendering:outputPass
09:33:01.804 [main] INFO  o.t.e.r.dag.RenderTaskListGenerator -         SetInputTextureFromFbo: slot 0, fbo engine:fbo.finalBuffer (fboId: 3), textureType ColorTexture, material CoreRendering:outputPass, parameter 'target'
09:33:01.804 [main] INFO  o.t.e.r.dag.RenderTaskListGenerator - CoreRendering:outputToScreenNode (OutputToScreenNode): process()
FATAL ERROR in native method: Thread[main,10,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.EXTFramebufferObject.glBindFramebufferEXT(Native Method)
    at org.terasology.engine.rendering.dag.stateChanges.BindFbo.process(BindFbo.java:62)
...
soloturn commented 1 month ago

could you please try to get a fatal error log, maybe like this: https://docs.oracle.com/en/java/javase/17/troubleshoot/location-fatal-error-log.html#GUID-6903F4A6-326C-403F-9DF0-475DC50F42F8 ?

a-ivanov commented 1 month ago

I would really love to.

Tried -XX:ErrorFile JVM arg with different paths and file names, to no avail. I run TerasologyPC for Mac configuration from Idea like

/Users/.../java -Xms256m -Xmx1536m -XstartOnFirstThread -XX:ErrorFile=<relative or absolute path>java_error_another_one%p.log -Djava.awt.headless=true -javaagent:... org.terasology.engine.Terasology --homedir=. --no-crash-report --no-splash

No log file is generated. Definitely have permission to write to home dir, process working dir, etc. Checked /tmp dir, no logs there.

Maybe you have more pointers to try.

jdrueckert commented 1 month ago

@skaldarnar any ideas here?