Ok I’m going to start off by saying this is a multilayered question and the main question I’m going to ask comes from a decent amount of investigation, though if I’ve fallen for the XY Problem, please let me know.
I’m running a program that has an OpenGL 3.2 context, but it’s trying to run the glGenSamplers
function which only exists in 3.3+, and is crashing because of that. Are there any mesa commands I can run or enviornment variables I can set to allow that function call to succeed?
Nuance is below:
I’m trying to run a Minecraft Modpack called Prominence II, and it keeps crashing every time I run it. The pack developers have a post on their Discord saying they’re aware the pack doesn’t run on Linux systems with Nvidia GPUs, and they’re actively investigating the problem. I decided to look into it myself and found that the problem originated from a mod called AAA Particles which allows particle effects created in some software called Effekseer to be run in Minecraft. This mod uses a file called libEffekseerNativeForJava.so
to achieve this, and this is the file that produces the error. (The line with the error itself reads /app/jdk/17/bin/java: symbol lookup error: /home/owner/.var/app/org.prismlauncher.PrismLauncher/data/PrismLauncher/instances/Prominence II RPG- Hasturian Era/minecraft/libEffekseerNativeForJava.so: undefined symbol: glGenSamplers
). Searching up glGenSamplers
I find that it’s an OpenGL 3.3 function, and knowing Minecraft runs on OpenGL 3.2, I came up with my main question at the top of this post.
Some other important things to note are that there is an issue on the AAA Particles GitHub that matches the problem, and someone found some environment variables that fixed the issue for them but it didn’t work for me. Another thing is there is another mod called ThreatenGL that forces Minecraft to run on OpenGL 4.6, but that didn’t fix the issue either.