Cadiboo / NoCubes

A mod for 1.12.2+ that creates smooth terrain in Minecraft
https://Cadiboo.github.io/projects/nocubes/
GNU Lesser General Public License v3.0
140 stars 12 forks source link

Mod incompatibility with Rubidium #88

Closed ewiles18 closed 5 months ago

ewiles18 commented 2 years ago

Using Rubidium(Forge's equivalent of sodium) for 1.18.2 in conjunction with NoCubes causes the game to crash on startup.

crash-2022-04-11_16.54.20-client.txt

Stack trace org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-9.1.3.jar:9.1.3+9.1.3+main.9b69c82a] {} at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-9.1.3.jar:?] {} at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-9.1.3.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-9.1.3.jar:?] {} at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:110) ~[securejarhandler-1.0.3.jar:?] {} at cpw.mods.cl.ModuleClassLoader.lambda$findClass$16(ModuleClassLoader.java:216) ~[securejarhandler-1.0.3.jar:?] {} at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:226) ~[securejarhandler-1.0.3.jar:?] {} at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:216) ~[securejarhandler-1.0.3.jar:?] {} at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:132) ~[securejarhandler-1.0.3.jar:?] {} at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {} at net.minecraft.client.Minecraft.(Minecraft.java:502) ~[client-1.18.2-20220404.173914-srg.jar%23144!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:flywheel.mixins.json:PausedPartialTickAccessor,pl:mixin:APP:mixins.oculus.json:MixinMinecraft,pl:mixin:APP:mixins.oculus.json:MixinMinecraft_PipelineDestruction,pl:mixin:APP:rubidium.mixins.json:core.MixinMinecraftClient,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:A,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:169) ~[client-1.18.2-20220404.173914-srg.jar%23144!/:?] {re:classloading,pl:runtimedistcleaner:A} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {} at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {} at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {} at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:45) ~[fmlloader-1.18.2-40.0.44.jar%2316!/:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {} at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [mixins.nocubes.json:LevelRendererMixin] from phase [DEFAULT] in config [mixins.nocubes.json] FAILED during APPLY at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinError(MixinProcessor.java:636) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinApplyError(MixinProcessor.java:588) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:379) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} ... 28 more Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("CONSTANT") on net/minecraft/client/renderer/LevelRenderer::nocubes_setBlocksDirty with priority 1000 cannot inject into net/minecraft/client/renderer/LevelRenderer::m_109732_(Lnet/minecraft/core/BlockPos;Z)V merged by me.jellysquid.mods.sodium.mixin.features.chunk_rendering.MixinWorldRenderer with priority 1000 [PREINJECT Applicator Phase -> mixins.nocubes.json:LevelRendererMixin -> Prepare Injections -> -> constant$zfg000$nocubes_setBlocksDirty(I)I -> Prepare] at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:305) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:240) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:421) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1319) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1042) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:393) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:383) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:365) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {} ... 28 more
Cadiboo commented 2 years ago

Caused by this code in Rubium. They should fix it on their end - NoCubes’s changes were designed with compatibility in mind (see my code here) but Rubium’s code was not and consequently is causing issues. If they change their code to redirect the inner call instead of overwriting the entire method our mods should be compatible. I’m happy to work with them on fixing it but I don’t think the responsibility should lie in my mod’s code. Feel free to share this message with them. Do they have a discord I can join to try and talk with one of the devs?

ewiles18 commented 2 years ago

Caused by this code in Rubium. They should fix it on their end - NoCubes’s changes were designed with compatibility in mind (see my code here) but Rubium’s code was not and consequently is causing issues. If they change their code to redirect the inner call instead of overwriting the entire method our mods should be compatible. I’m happy to work with them on fixing it but I don’t think the responsibility should lie in my mod’s code. Feel free to share this message with them. Do they have a discord I can join to try and talk with one of the devs?

I unfortunately cannot find a way to contact the developer. A discord or method of communication doesn't seem to be present on curseforge 😦 .

Cadiboo commented 2 years ago

I had a chat in the Sodium discord server. It won’t be a simple task to make the two mods compatible and it won’t get done anytime soon. In the meantime, NoCubes supports OptiFine if you’re trying to get performance & shaders. I’m going to keep this issue open so I can track compatibility if I ever get around to working on it.

Discord conversation: https://discord.com/channels/602796788608401408/752637878462578778/963363444235591753

Legendile7 commented 1 year ago

Caused by this code in Rubium. They should fix it on their end - NoCubes’s changes were designed with compatibility in mind (see my code here) but Rubium’s code was not and consequently is causing issues. If they change their code to redirect the inner call instead of overwriting the entire method our mods should be compatible. I’m happy to work with them on fixing it but I don’t think the responsibility should lie in my mod’s code. Feel free to share this message with them. Do they have a discord I can join to try and talk with one of the devs?

This is their discord: https://discord.gg/DNYSzrTkZA

Cadiboo commented 1 year ago

Can you please try adding the following option to your config/rubidium-mixins.properties file?

mixin.features.chunk_rendering=false

This should fix one part of the issue. This fix was discovered by a member of the NCR team on discord https://discord.com/channels/493715188843937793/493715189338734595/1070071850593435678.

Cadiboo commented 1 year ago

Should be fixed by https://github.com/Cadiboo/NoCubes/commit/6d424e02c77cd1e3a9dc4731d35d5a9eb296d90c (once https://github.com/Asek3/Rubidium/pull/408 is merged)

uhloin commented 1 year ago

Now I have similar issue for 1.19.2 (crash report is attached)

uhloin commented 1 year ago

crash-2023-03-14_11.19.48-client.txt

Cadiboo commented 1 year ago

Use the solution from my above comment https://github.com/Cadiboo/NoCubes/issues/88#issuecomment-1416685743

uhloin commented 1 year ago

Use the solution from my above comment #88 (comment)

I haven't a file .minecraft/config/rubidium-mixins.properties, only a file .minecraft/config/rubidium-options.json I can create file rubidium-mixins.properties but what format should be inside or just that single row "mixin.features.chunk_rendering=false"? Could you write more specific instructions?

Cadiboo commented 1 year ago

I’m not sure why the file doesn’t exist for you, it should. Try creating it and just putting that single line inside. Here’s what it looks like normally 46956BF6-399E-49C9-800A-9CD015DB0059

uhloin commented 1 year ago

With this file MC still crushed on start. May be it's because it's Fabric feature (your link contains "fabric"), but I use Forge. crash-2023-03-15_11.21.10-client.txt

Cadiboo commented 1 year ago

I don’t think so - the feature worked fine when I used it on Forge 1.19.3, maybe it was only added recently though. At this point I think it’s better to report the issue to Rubidium.

uhloin commented 1 year ago

Looks like your PR is not merged yet: https://github.com/Asek3/Rubidium/pull/408

Cadiboo commented 1 year ago

Yeah, it’s not merged yet but it still shouldn’t be crashing if you put that line in the config (my PR is just to automatically add that line to the config)

Cadiboo commented 8 months ago

TL; DR

I’m investigating how to make NoCubes compatible with Rubidum on 1.20, more details can be found at https://github.com/Cadiboo/NoCubes/issues/106#issuecomment-1751847441.

Bit of an update to this: Rubidium makes changes to Minecraft (replacing the rendering system with their own system) that NoCubes is not compatible with (NoCubes relies on Minecraft’s rendering system to work), see https://github.com/Cadiboo/NoCubes/issues/88#issuecomment-1095580609 for more info.

Cadiboo commented 7 months ago

NoCubes should work with Rubidium and Embeddium as of 329653cd (not released as of yet). It may/may not work with Oculus (#106)