makamys / Neodymium

Reimplements chunk rendering using modern OpenGL features to improve performance (1.7.10)
Other
116 stars 10 forks source link

Incompatibility with Optifine D6 + LWJGL3ify #13

Closed Abalieno closed 1 year ago

Abalieno commented 1 year ago

Mixin apply failed neodymium.mixin.json:MixinGameSettings_OptiFine -> net.minecraft.client.settings.GameSettings: org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException @Shadow field ofFogType was not located in the target class net.minecraft.client.settings.GameSettings. Using refmap neodymium.mixin.refmap.json

Using neodymium-1.7.10-0.1.6-8-g74c216c+nomixin (works with E7)

makamys commented 1 year ago

Can't reproduce, please post a full fml-client-latest.log.

Also, can you check if the same error happens with 0.1.6 release?

Abalieno commented 1 year ago

0.1.6 fails too. It seems incidentally related to a partial incompatibility with lwjgl3ify/java 19.

D6 has the problem that it loads but doesn't show any video options, but it otherwise runs normally. I guess that neodymium tries to access that part and failing.

So I guess it's not a specific issue of Neodymium.

makamys commented 1 year ago

I see. I could just add a fallback that makes it assume OF's fog is enabled if it can't find the field if no better solution is found.

mcmso commented 1 year ago

I've tested a bunch of different mod combinations with a few players. The best mod combo for performance is' fastcraft125+optifine e7 '

SilearFlare commented 1 year ago

I've tested a bunch of different mod combinations with a few players. The best mod combo for performance is' fastcraft125+optifine e7 '

I thought we debunked this months ago, did anything happen specifically with neodymium's updates to change the golden ratio of D6+.23?

makamys commented 1 year ago

Maybe it depends on the modpack? Though to be fair, Neodymium wasn't even released yet when you made that benchmark.

SilearFlare commented 1 year ago

Shoot, was it last year already :hourglass_flowing_sand: Still, IIRC .25 is supposed to be gutted to hell and back because stuff broke with optifine Player just wanted to have the mod actually running and get it over and done with, while E7 is just OF with shaders support and the immense amount of fixes that had to come with that feature, so under the hood they're supposed to both be "it just werks" versions. That said, we also have notfine now technically and I haven't checked anything with it yet :shrug:

makamys commented 1 year ago

I looked into this, and OptiFine D6 isn't even functional with LWJGL3ify (1.2.2). OptiFine's name does show up in the F3 overlay, but that's where its functionality ends. Its class transformer fails to load, rendering the mod useless. So there's no reason to add compatibility with it - you may as well remove the mod.

[15:00:19] [main/INFO] [LaunchWrapper/]: Calling tweak class optifine.OptiFineForgeTweaker
[15:00:19] [main/INFO] [STDOUT/]: [optifine.OptiFineForgeTweaker:dbg:56]: OptiFineForgeTweaker: acceptOptions
[15:00:19] [main/INFO] [STDOUT/]: [optifine.OptiFineForgeTweaker:dbg:56]: OptiFineForgeTweaker: injectIntoClassLoader
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at optifine.OptiFineClassTransformer.<init>(OptiFineClassTransformer.java:40)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at net.minecraft.launchwrapper.LaunchClassLoader.registerTransformer(LaunchClassLoader.java:94)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at optifine.OptiFineForgeTweaker.injectIntoClassLoader(OptiFineForgeTweaker.java:38)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at net.minecraft.launchwrapper.Launch.launch(Launch.java:145)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at net.minecraft.launchwrapper.Launch.main(Launch.java:29)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]:     at org.prismlauncher.EntryPoint.main(EntryPoint.java:71)
[15:00:19] [main/INFO] [STDOUT/]: [optifine.OptiFineClassTransformer:dbg:266]: *** Can not find the OptiFine JAR in the classpath ***
[15:00:19] [main/INFO] [STDOUT/]: [optifine.OptiFineClassTransformer:dbg:266]: *** OptiFine will not be loaded! ***

Edit: I reported the issue here: https://github.com/GTNewHorizons/lwjgl3ify/issues/47