Osx 15.2

Hello

since the newest OS update on Macs, Sequoia 15.2), jmonkey applications are not working anymore. The test examples run, but show no graphics (black screen) or a flickering screen.

Any ideas?

Thank you, Michael

1 Like

Do you recognize any suspicious stacktrace? or any error dialog so far?

I’m running JME apps successfully on macOS Sequoia 15.3 (24D60).
I’ve run them on both Java 1.8 and Java 21.
I’ve run them on both JME 3.7.0-stable and 3.8.0-alpha2.

There are a few gotchas:

  1. To run on macOS, you must pass “-XstartOnFirstThread” to the JVM.
  2. To run on Apple Silicon, you must specify LWJGL v3 (jme3-lwjgl3) instead of LWJGL v2 (jme3-lwjgl) and disable the AWT settings dialog in main() with application.setShowSettings(false).

If you’re still stuck, please provide the Java version and JME version you’re using.

3 Likes

I can make it more precise:
jme 3.7.0-stable
LWJGL 3.3.3+5

The problem occurs ONLY on Sequoia 15.2 and 15.3 on INTEL Macs. It works on all arm and also on Intel-Macs with older OS.

I ran my application with DEBUG mode. It opens the Window, but does no rendering. In the working situation, the logfile log the compilation of the shaders, which is in the problematic sitauion not the case. We don’t get any exception.

A friend haveing a OS-X 15.3 machin reports, that alos the test cases do not run.

Here is the log:

INFO JmeDesktopSystem 09:36:17 Running on jMonkeyEngine 3.7.0-stable

  • Branch: HEAD
  • Git Hash: bc6cdf5
  • Build Date: 2024-10-31
    [LWJGL] Version: 3.3.3+5
    OS: Mac OS X v15.3.2
    JRE: macOS x86_64 21.0.3
    JVM: Java HotSpot™ 64-Bit Server VM v21.0.3+7-LTS-152 by Oracle Corporation
    [LWJGL] Loading JNI library: lwjgl
    Module: org.lwjgl
    macos/x64/org/lwjgl/liblwjgl.dylib not found in java.library.path=.
    Loaded from java.library.path: ./liblwjgl.dylib
    [LWJGL] Java 9 check intrinsics enabled
    [LWJGL] Closure Registry: simple
    [LWJGL] Loading library: jemalloc
    Module: org.lwjgl.jemalloc
    Loaded from java.library.path: ./libjemalloc.dylib
    [LWJGL] MemoryUtil allocator: JEmallocAllocator
    [LWJGL] Loading library: glfw
    Module: org.lwjgl.glfw
    Loaded from java.library.path: ./libglfw.dylib
    [LWJGL] Loading library: objc
    Module: org.lwjgl
    [LWJGL] Java 9 text decoding enabled
    Loaded from system paths: /usr/lib/libobjc.A.dylib
    2025-03-16 09:36:19.363 java[6177:769825] +[IMKClient subclass]: chose IMKClient_Modern
    2025-03-16 09:36:19.363 java[6177:769825] +[IMKInputSession subclass]: chose IMKInputSession_Modern
    [LWJGL] Java 10 multiplyHigh enabled
    INFO LwjglContext 09:36:19 LWJGL 3.3.3+5 context running on thread jME3 Main
  • Graphics Adapter: GLFW 3.4.0 Cocoa NSGL Null EGL OSMesa monotonic dynamic
    [LWJGL] Loading JNI library: lwjgl_opengl
    Module: org.lwjgl.opengl
    macos/x64/org/lwjgl/opengl/liblwjgl_opengl.dylib not found in java.library.path=.
    Loaded from java.library.path: ./liblwjgl_opengl.dylib
    [LWJGL] Loading library: /System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL
    Module: org.lwjgl.opengl
    Success
    INFO GLRenderer 09:36:19 OpenGL Renderer Information
  • Vendor: ATI Technologies Inc.
  • Renderer: AMD Radeon Pro 560X OpenGL Engine
  • OpenGL Version: 2.1 ATI-6.1.13
  • GLSL Version: 1.20
  • Profile: Compatibility
    [LWJGL] Loading library: openal
    Module: org.lwjgl.openal
    Loaded from java.library.path: ./libopenal.dylib
    INFO ALAudioRenderer 09:36:19 Audio Renderer Information
  • Device: OpenAL Soft
  • Vendor: OpenAL Community
  • Renderer: OpenAL Soft
  • Version: 1.1 ALSOFT 1.23.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_device_clock ALC_SOFT_HRTF ALC_SOFT_loopback ALC_SOFT_loopback_bformat ALC_SOFT_output_limiter ALC_SOFT_output_mode ALC_SOFT_pause_device ALC_SOFT_reopen_device
  • AL extensions: AL_EXT_ALAW AL_EXT_BFORMAT 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_BFORMAT AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_EXT_SOURCE_RADIUS AL_EXT_STATIC_BUFFER AL_EXT_STEREO_ANGLES AL_LOKI_quadriphonic AL_SOFT_bformat_ex AL_SOFTX_bformat_hoa AL_SOFT_block_alignment AL_SOFT_buffer_length_query AL_SOFT_callback_buffer AL_SOFTX_convolution_reverb AL_SOFT_deferred_updates AL_SOFT_direct_channels AL_SOFT_direct_channels_remix AL_SOFT_effect_target AL_SOFT_events AL_SOFT_gain_clamp_ex AL_SOFTX_hold_on_disconnect AL_SOFT_loop_points AL_SOFTX_map_buffer AL_SOFT_MSADPCM AL_SOFT_source_latency AL_SOFT_source_length AL_SOFT_source_resampler AL_SOFT_source_spatialize AL_SOFT_source_start_delay AL_SOFT_UHJ AL_SOFT_UHJ_ex
    INFO ALAudioRenderer 09:36:19 Audio effect extension version: 1.0
    INFO ALAudioRenderer 09:36:19 Audio max auxiliary sends: 2
    WARNING Nifty 09:36:19 Style: helix-panel was already registered. The new definition will override the previous.

Thanks!

1 Like

Thanks for the additional details.

My best guess is it’s an LWJGL-on-MacOS issue. Alas, I currently don’t have access to any Intel Macs where I can run interactive tests. I’ll do some searching and think about what tests you might run to further pin down the issue.

Can anyone else assist with troubleshooting?

  • First thing i would do is to check if lwjgl2 works. As far i know intel mac’s should still run that?
  • Enabling graphics debug if not yet done:
settings.setGraphicsDebug(true);
  • Osx should be able to run a 4.1 core profile

  • test with a never version of glfw might be an option too

Meta forked renderdoc and offers an macos version, not sure however if it supports only meta devices

1 Like

This line bothers me a bit. I think LWJGL implements a retry here, but why it fails in the first place? Could be loading wrong binaries afterwards?

The reason for this (library opening) is, that I deploy the native libs not inside the jar but as extra file on the lib path. This is ok.
To give another hint:
On the Old intel macs with the new sequoia, the program runs with
Jme 3.2-stable and LWJGL 2.9.3
But not with jme 3.3.2 and LWJGL 3.3.0 and alos not with the newer ones
From my point of view, the Window-System changed to GLFW. Maybe this is the reason?

1 Like