Sodium

Sodium

35M Downloads

Incompatibility with macOS on 1.18.x/next branch

cocona20xx opened this issue ยท 8 comments

commented

Version information

sodium-fabric-mc1.18.1-0.4.0-alpha5+build.858

Reproduction Steps

  1. Launch the game on macOS via MultiMC, with Sodium build 858, and Fabric Launcher 0.12.12 installed. Tested under both ARM64 binaries and x86-65 binaries via Rosetta translation.
  2. The game will crash before it is able to open a game window. If running under Rosetta translation, macOS will also generate a crash log.

Crash Report file

Both logs are from the launch attempts via Rosetta-translated binaries:
Log 1: Generated by macOS upon game crash
Log 2: Identical to the output of latest.log, other than the multimc launch info header at the top of the log
No minecraft crash report was generated.

Additional information

It is extremely likely that this crash is caused by Apple's deprecation of OpenGL drivers to focus on it's proprietary Metal graphics API; due to this most OpenGL features from versions past OpenGL 4.2 were never implemented, with others being outright broken on Apple Silicon due to differences in hardware. This will probably take quite a few workarounds to fix, sadly.

commented

That's expected

commented

MacOS support is gone (see 69fb6d3 )

commented

Yeah, thats disappointing but expected ngl; hopefully metal support will be worked out before the end of the 1.18 dev cycle

commented

macOS support is unlikely to change unless they suddenly decide to provide first-party support for OpenGL 4.5 (very unlikely) or someone builds a translation layer between OpenGL and Metal (very hard, and most likely won't offer acceptable performance.)

For the time being, we're only depending on the new API features of OpenGL 4.5, and the actual hardware requirements have yet to change. This means even older systems which don't support OpenGL 4.5 will probably continue to work with Sodium provided they have up-to-date graphics drivers, as the only changes on Sodium's side are how the application interacts with the driver, not the graphics card hardware itself.

commented

I'm very tempted to mark this as "will not fix" because there is really nothing we can do about a hardware vendor dropping support for a standard that every other GPU on the market supports.

commented

@jellysquid3 i'll keep an eye on the reddit user who created this post: https://www.reddit.com/r/opengl/comments/rts15s/opengl_on_metal_2d_texture_arrays_named_object/

they are a retired apple dev who is working on an open-source compat layer between openGL 4.6 and Metal; when it becomes available for testing and has a way to work alongside LWJGL/minecraft as a whole, i'll open a new issue to see if testing such a solution is possible

feel free to close this for now

commented

@jellysquid3 i'll keep an eye on the reddit user who created this post: https://www.reddit.com/r/opengl/comments/rts15s/opengl_on_metal_2d_texture_arrays_named_object/

they are a retired apple dev who is working on an open-source compat layer between openGL 4.6 and Metal; when it becomes available for testing and has a way to work alongside LWJGL/minecraft as a whole, i'll open a new issue to see if testing such a solution is possible

feel free to close this for now

Btw he published on GitHub, https://github.com/openglonmetal/MGL

commented

The "next" branch is no more, so this issue no longer applies.