NoCubes

NoCubes

829k Downloads

Mod incompatibility with Rubidium

ewiles18 opened this issue · 17 comments

commented

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

commented

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?

commented

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 😦 .

commented

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

commented

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

commented

Should be fixed by 6d424e0 (once Asek3/Rubidium#408 is merged)

commented

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.

commented

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

commented

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

commented

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?

commented

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

commented

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

commented

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.

commented

Looks like your PR is not merged yet:
Asek3/Rubidium#408

commented

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)

commented

TL; DR

I’m investigating how to make NoCubes compatible with Rubidum on 1.20, more details can be found at #106 (comment).

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 #88 (comment) for more info.

  • In 1.18, NoCubes was not compatible with Rubidium, but Rubidium’s config file could be changed so that Rubidium did not make its incompatible changes (#88 (comment))
  • In 1.19, NoCubes was compatible with Rubidium because Rubidium added a way for NoCubes to automatically tell Rubidium to not make its incompatible changes when the game is launched (Asek3/Rubidium#436, 6d424e0)
  • In 1.20, the Rubidium mod underwent internal changes, the result of which is that NoCubes seems to no-longer be able to automatically tell Rubidium to not make its incompatible changes when the game is launched. Other ways of compatibility are being investigated (#106 (comment))
commented

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