Oculus Particle Fix

Oculus Particle Fix

5M Downloads

Crash 1.20.1

Krimatoria opened this issue · 6 comments

commented

Forge 47.2.6
Minecraft 1.20.1

Apotheosis-1.20.1-7.3.1.jar
oculus-mc1.20.1-1.6.15a.jar
oculusparticlefix-1.0.jar

https://gist.github.com/Krimatoria/8cdcc53d491f9e32580038ba48d04e7f#file-log-oculus

18:53:26] [modloading-worker-0/WARN] [mixin/]: @reDIrect conflict. Skipping mixins.oculus.fantastic.json:MixinParticleEngine from mod oculus->@reDIrect::iris$selectParticlesToRender(Ljava/util/Map;)Ljava/util/Set; with priority 1000, already redirected by oculusparticlefix.mixins.json:ParticleEngineMixin from mod oculusparticlefix->@reDIrect::oculusfix$getParticlesToRenderKeySet(Ljava/util/Map;)Ljava/util/Set; with priority 9999
[18:53:26] [modloading-worker-0/ERROR] [ne.mi.fm.ja.FMLModContainer/LOADING]: Failed to create mod instance. ModID: apotheosis, class dev.shadowsoffire.apotheosis.Apotheosis
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-10.0.9.jar:10.0.9+10.0.9+main.dcd20f30] {}
at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.9.jar:?] {}
at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.9.jar:?] {}
at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.9.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.10.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.10.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?] {}
at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.10.jar:?] {}
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:?] {}
at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:?] {re:mixin}
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) ~[?:?] {re:mixin}
at java.lang.Class.getConstructor0(Unknown Source) ~[?:?] {re:mixin}
at java.lang.Class.getConstructor(Unknown Source) ~[?:?] {re:mixin}
at net.minecraftforge.eventbus.api.EventListenerHelper.computeListenerList(EventListenerHelper.java:75) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.api.EventListenerHelper.lambda$getListenerListInternal$0(EventListenerHelper.java:56) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.LockHelper.computeIfAbsent(LockHelper.java:61) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.LockHelper.get(LockHelper.java:44) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.LockHelper.computeIfAbsent(LockHelper.java:39) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.api.EventListenerHelper.getListenerListInternal(EventListenerHelper.java:56) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.api.EventListenerHelper.getListenerList(EventListenerHelper.java:50) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.EventBus.addToListeners(EventBus.java:276) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.EventBus.register(EventBus.java:269) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.EventBus.registerListener(EventBus.java:163) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.EventBus.lambda$registerClass$2(EventBus.java:86) ~[eventbus-6.0.5.jar%23109!/:?] {}
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[?:?] {}
at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) ~[?:?] {}
at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source) ~[?:?] {}
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source) ~[?:?] {}
at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?] {}
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?] {}
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[?:?] {}
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[?:?] {}
at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?] {}
at java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[?:?] {}
at net.minecraftforge.eventbus.EventBus.registerClass(EventBus.java:86) ~[eventbus-6.0.5.jar%23109!/:?] {}
at net.minecraftforge.eventbus.EventBus.register(EventBus.java:126) ~[eventbus-6.0.5.jar%23109!/:?] {}
at dev.shadowsoffire.apotheosis.ench.EnchModule.(EnchModule.java:116) ~[Apotheosis-1.20.1-7.3.1.jar%23448!/:7.3.1] {re:classloading}
at dev.shadowsoffire.apotheosis.Apotheosis.(Apotheosis.java:105) ~[Apotheosis-1.20.1-7.3.1.jar%23448!/:7.3.1] {re:mixin,re:classloading}
at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(Unknown Source) ~[?:?] {}
at java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source) ~[?:?] {}
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?] {}
at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:70) ~[javafmllanguage-1.20.1-47.2.6.jar%23736!/:?] {}
at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$10(ModContainer.java:123) ~[fmlcore-1.20.1-47.2.6.jar%23735!/:?] {re:mixin}
at java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[?:?] {}
at java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[?:?] {}
at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:?] {}
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[?:?] {}
at java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[?:?] {re:mixin,re:computing_frames}
at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:?] {re:mixin,re:computing_frames}
at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:?] {re:mixin}
Caused by: org.spongepowered.asm.mixin.injection.throwables.InjectionError: Critical injection failure: Redirector iris$selectParticlesToRender(Ljava/util/Map;)Ljava/util/Set; in mixins.oculus.fantastic.json:MixinParticleEngine from mod oculus failed injection check, (0/1) succeeded. Scanned 1 target(s). Using refmap oculus-mixins-refmap.json
at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.postInject(InjectionInfo.java:468) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}
at org.spongepowered.asm.mixin.transformer.MixinTargetContext.applyInjections(MixinTargetContext.java:1384) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyInjections(MixinApplicatorStandard.java:1062) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:402) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}
at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:327) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}
at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:421) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}
at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:403) ~[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] {}
... 54 more

commented

Извините за мой поздний ответ. У меня много дел в реальной жизни, поэтому сейчас я делаю перерыв в разработке модов для Minecraft. Я все еще пытался исправить сбой, но я не очень знаком с проблемами Mixin. После небольшого исследования я обнаружил, что изменение аннотации Redirect на ModifyExpressionValue MixinExtra может помочь. У меня это больше не дает сбоев, но было бы здорово, если бы вы попробовали, работает ли это и у вас, прежде чем я загружу исправление.

oculusparticlefix-1.1.zip

РЕДАКТИРОВАТЬ: Я только что посмотрел исходный код Oculus, и кажется, что недавно кто-то добавил сюда аналогичное исправление в Oculus . Я уже провел небольшое тестирование и думаю, что Oculus Particle Fix не нужен в новой версии Oculus 1.20.1. Пожалуйста, попробуйте, если у вас возникнут проблемы с рендерингом без Oculus Particle Fix, а если нет, я обновлю описание Oculus Particle Fix, указав, что мод больше не нужен в новейшей версии Oculus 1.20.1.

I'll try)

commented

I'll also try with it and without it and look at the difference in moments with particles. Since with the Fungal Infection mod:Spore
spore_1.20_1_2.0.2c.jar

I had big problems with FPS, because they have something wrong with the particles. I'll see if your mod fixes it too) I hope everything works out for you)

Извините за мой поздний ответ. У меня много дел в реальной жизни, поэтому сейчас я делаю перерыв в разработке модов для Minecraft. Я все еще пытался исправить сбой, но я не очень знаком с проблемами Mixin. После небольшого исследования я обнаружил, что изменение аннотации Redirect на ModifyExpressionValue MixinExtra может помочь. У меня это больше не дает сбоев, но было бы здорово, если бы вы попробовали, работает ли это и у вас, прежде чем я загружу исправление.

oculusparticlefix-1.1.zip

РЕДАКТИРОВАТЬ: Я только что посмотрел исходный код Oculus, и кажется, что недавно кто-то добавил сюда аналогичное исправление в Oculus . Я уже провел небольшое тестирование и думаю, что Oculus Particle Fix не нужен в новой версии Oculus 1.20.1. Пожалуйста, попробуйте, если у вас возникнут проблемы с рендерингом без Oculus Particle Fix, а если нет, я обновлю описание Oculus Particle Fix, указав, что мод больше не нужен в новейшей версии Oculus 1.20.1.

commented

Sorry for my late response. I have a lot going on irl rn, so I currently take a break from developing Minecraft mods.
I still tried to fix the crash, but I'm not that familiar with Mixin issues. After a bit of research, I found that changing the Redirect annotation to MixinExtra's ModifyExpressionValue might do it. It doesn't crash for me anymore, but it would be great if you could try if it works for you as well, before I upload the fix.

oculusparticlefix-1.1.zip

EDIT:
I just looked at the source code of Oculus, and it seems like recently someone merged a similar fix into Oculus here. I've already done a bit of testing and I think Oculus Particle Fix is not needed in the new 1.20.1 version of Oculus. Please try if you experience the rendering issue without Oculus Particle Fix and if not, I will update the description of Oculus Particle Fix that the mod is not needed in the newest 1.20.1 release of Oculus anymore.

commented

I'm having the same crash issue, as far as I can tell. I have the latest publicly-released versions of Create and Oculus on 1.20.1, and crash during launch whenever this particle fix mod is enabled.
I can upload my entire log, but there's like 300 mods there right now and it'd take some time to do more thorough testing. I'll put the line that seemed most relevant here though.

Potentially relevant mods:
Create 1.20.1-0.5.1.f
Oculus 1.20.1-1.7.0
Embeddium 0.3.18+mc1.20.1

Example line from log:

[12May2024 11:54:04.618] [modloading-worker-0/FATAL] [mixin/]: Mixin apply for mod oculusparticlefix failed oculusparticlefix.mixins.json:ParticleEngineMixin from mod oculusparticlefix -> net.minecraft.client.particle.ParticleEngine: org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException Unexpecteded NullPointerException whilst transforming the mixin class: [MAIN Applicator Phase -> oculusparticlefix.mixins.json:ParticleEngineMixin from mod oculusparticlefix -> Apply Methods -> ()V: -> Transform Instructions -> GETSTATIC net/coderbot/iris/fantastic/ParticleRenderingPhase::EVERYTHING:Lnet/coderbot/iris/fantastic/ParticleRenderingPhase;]

EDIT: The 1.1 version you shared above does not stop this crash from occurring.
(Thanks for making this by the way, it saved my 1.19.2 modpack when I was using it there. Just wanted to share my gratitude somewhere lol)

commented

Thanks for your kind words, this makes me really happy.
The reason for the crash is that Oculus fixed the particle issue themselves, finally. This means that in the newer 1.20.1 Versions of Oculus, my fix isn't needed anymore. Since the 1.18.2 and 1.19.2 versions aren't supported by the Oculus dev anymore, this mod will still be useful for them, but any future versions will work just as well without Oculus Particle Fix.
I forgot to add that to the modpage, but now I updated the description so that everybody knows. Thanks for reminding me.

commented

Huh, some other mod must be reintroducing the issue then, or I have a wrong setting somewhere...? Create contraptions teleport around whenever I pick up an item using the versions I listed above while shaders are active. I'll do some more testing.

EDIT: Can confirm the item pickup issue is present with only these three mods installed:
Create 1.20.1-0.5.1.f
Oculus 1.20.1-1.7.0
Embeddium 0.3.18+mc1.20.1
And on oculus1.6.9/embeddium0.2.18 versions that do not crash when running with this mod, the issue seems to persist even while it is loaded.
If you've tested a version of your mod on a 1.20.1 version of oculus pre-fix and it fixed the issue, I'd like to know what versions you used. I'd prefer to have this issue fixed than use the newer versions of the other mods.
(Also I'll probably check the Oculus git repo to see if anyone else is still having this issue.)