Incompatibility with macOS on 1.18.x/next branch
cocona20xx opened this issue ยท 8 comments
Version information
sodium-fabric-mc1.18.1-0.4.0-alpha5+build.858
Reproduction Steps
- 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.
- 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.
MacOS support is gone (see 69fb6d3 )
Yeah, thats disappointing but expected ngl; hopefully metal support will be worked out before the end of the 1.18 dev cycle
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.
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.
@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
@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