Sodium

Sodium

44M Downloads

Incompatible with LWJGL 3.2.3 (used by ARM64 builds)

nick-botticelli opened this issue ยท 9 comments

commented

Version information

mc1.17.1-0.3.0+build.494

Reproduction Steps

  1. Use M1 MultiMC Hack (https://github.com/yusefnapora/m1-multimc-hack)
  2. Launch Minecraft 1.17 with newer builds of Sodium (Ones including the usage of org.lwjgl.system.MemoryUtil.memFree method)
  3. Change worlds or log out of a server/single player world to trigger the crash

Crash Report file

crash-2021-07-08_19.15.01-client.txt

Additional information

This is likely due to Sodium's usage of certain org.lwjgl methods with the "M1 MultiMC Hack" located here https://github.com/yusefnapora/m1-multimc-hack. I have tried various forks of it with no success, either. I do not expect this to have a high priority as it would be done to support a hack-y setup. Older versions of Sodium seem to not encounter this crash issue.

commented

We'll merge the workaround from Iris into Sodium 0.3.1.

commented

This commit works around the issue: IrisShaders@7491e3a

commented

Same here on an M1. Getting super high frame rates 70-120FPS with 300+ mods but stutters down to 7-20 when moving. Disconnecting from server gives me the sodium crash. Now that I know it is the M1 hack Iโ€™ll try in regular compatibility Rosetta mode.

commented

This is now fixed in Sodium 0.3.1.

commented

stutters down to 7-20

was messing around with settings in sodium 0.3.1
change chunk memory allocator from async to swap and it wont stutter anymore

iris doesnt work for me but i dont really use it

commented

This is because the "M1 Hack" bundles LWJGL 3.2.3. The latest version available in MultiMC (and used by Minecraft) is 3.2.2, and there was a breaking change in 3.2.3:
https://github.com/LWJGL/lwjgl3/releases/tag/3.2.3

Core: MemoryUtil.memFree(PointerBuffer) changed to memFree(CustomBuffer). (B)

commented

so you could technically just make a failsafe where it changes to memFree if it detects LWJGL 3.2.3

commented

I was able to run this as well as other Minecraft instances using a fork of the M1 hack. It ships 3.2.2 AFAICT.
https://github.com/17hoehbr/m1-multimc-hack

commented

I was able to run this as well as other Minecraft instances using a fork of the M1 hack. It ships 3.2.2 AFAICT.
https://github.com/17hoehbr/m1-multimc-hack

I tried that fork and faced the same crash; JDK 16 Minecraft 1.17.1, latest Sodium.