Sodium should verify the LWJGL installation at startup
jellysquid3 opened this issue ยท 7 comments
Some launchers appear to be using the incorrect version of the LWJGL libraries, which causes problems since LWJGL doesn't follow Semver and makes breaking changes to some public interfaces in point releases.
We should check at startup that Minecraft is using a compatible version of LWJGL to avoid issues like #2560. For the Minecraft versions we currently provide updates for, this is:
- Minecraft 1.20.1: LWJGL 3.3.1
- Minecraft 1.20.6 and 1.21: LWJGL 3.3.3
This will avoid problems where users are given cryptic errors caused by binary mismatches, by instead presenting the user with a clear error message explaining that their LWJGL version is out of date.
Unfortunately (or perhaps fortunately?) many piracy launchers update LWJGL by default and don't provide any option to not do that, meaning the mod will always abort with an error for those launchers. But we're already crashing there, so implementing this check won't make anything worse.
Resolved with ebed80b.
We still need to implement a front-end for showing error messages on Linux/macOS, but that's true of all the other early startup checks.
@IGN-Styly If you have Axiom installed, then yes, #2585 is relevant and the likely culprit. But you should open a new issue rather than use this one if you are erroneously receiving the error message.
Sodium requires LWJGL version 3.3.1 on my Minecraft instance, while I am actually uses 3.3.3, which prevents the game from launching. When launching with 3.3.1 it freezes the game on startup, which is why I manually set version 3.3.3. This is weird behavior. Is there maybe a different solution?