Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
a-ivanov opened this issue May 3, 2024 · 6 comments · Fixed by #5260
Labels
Status: Needs Investigation Requires to be debugged or checked for feasibility, etc. Topic: Stabilization Requests, Issues and Changes related to improving stablity and reducing flakyness Type: Bug Issues reporting and PRs fixing problems

Comments

@a-ivanov
Copy link

a-ivanov commented May 3, 2024

General Info

Terasology Launcher Version: Launching from IDE
Terasology Version: develop branch (commit 33dabf5)
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 33dabf5
  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)
...
@a-ivanov a-ivanov added Status: Needs Investigation Requires to be debugged or checked for feasibility, etc. Topic: Stabilization Requests, Issues and Changes related to improving stablity and reducing flakyness Type: Bug Issues reporting and PRs fixing problems labels May 3, 2024
@a-ivanov a-ivanov changed the title [macOS Sonoma] No context is current or a function that is not available in the current context was called [macOS Sonoma] Crash "No context is current or a function that is not available in the current context was called" May 3, 2024
@soloturn
Copy link
Contributor

soloturn commented May 4, 2024

@a-ivanov
Copy link
Author

a-ivanov commented May 5, 2024

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
Copy link
Member

@skaldarnar any ideas here?

@a-ivanov
Copy link
Author

Fixed the crash.

In org.terasology.engine.rendering.dag.stateChanges.BindFbo changed call to glBindFramebufferEXT (argument GL_FRAMEBUFFER_EXT) with org.lwjgl.opengl.GL30.glBindFramebuffer (argument org.lwjgl.opengl.GL30.GL_FRAMEBUFFER).

It seems that my graphic driver does not have glBindFramebufferEXT implementation or smth.

@jdrueckert
Copy link
Member

Interesting find @a-ivanov ! Great that you got it working 👏
I'm wondering whether this is an issue we see on other MacOS machines, too, and that your fix would also help resolve...
@Cervator @skaldarnar would you be able to check on your MacOS machines, whether you can (1) reproduce the crash and (2) apply the suggested fix to resolve it?

@skaldarnar
Copy link
Member

Tests out fine on my M1 Mac, and the fix is in line with a TODO comment in that file. 👍

I've created #5260.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Needs Investigation Requires to be debugged or checked for feasibility, etc. Topic: Stabilization Requests, Issues and Changes related to improving stablity and reducing flakyness Type: Bug Issues reporting and PRs fixing problems
Projects
Status: Done
Status: No status
Development

Successfully merging a pull request may close this issue.

4 participants