Switching Optifine shaders, then rendering a modular item, crashes the game.
AdamEternal opened this issue ยท 10 comments
Bug Report
Note: this could be the same issue as #368, but I'm not sure, so I'm making a new Github issue.
Observed Behaviour
When I switch what Optifine shaders I'm using mid-game (including "off" and "internal"), from that point on, until the game closes, looking at any modular item from Tetra crashes the game. If I try to craft it, if it's in my hotbar, if it's in my inventory and I open my inventory, or if it's in the world nearby as an item entity, the game crashes. The issue does not persist after re-launching the game, but the Optifine shader I chose is still chosen. The issue will occur again if I change my Optifine shader.
Crash log: https://pastebin.com/raw/HGF7CLeu
Expected Behaviour
I expect for the game to not crash under those circumstances.
Minimal setup needed to reproduce
- Forge version: 36.1.2
- Tetra version: 3.8.0
- Tetra configuration: https://pastebin.com/raw/gVn1Zchd (I changed nothing in the config.)
- Other mods:
-
- mGui 3.1.3
-
- Optifine 1.16.5 HD U G7
Steps to reproduce
- Enter a world.
- Change which Optifine shaders you're using. (Changing between "off" and "internal" counts.)
- Cause the game to render a modular Tetra item. (Have a hammer in your hotbar, for example.)
Confirming that this still repros (crash log) with:
- Minecraft 1.16.5
- Forge 36.2.19
- Tetra 3.19.0 (via Better Minecraft Plus v30)
- OptiFine_1.16.5_HD_U_G8
- ComplementaryShaders 4.2.2
Inline copy of the stack to make it easier for others to search for the issue:
Description: Rendering item
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.ArrayIndexOutOfBoundsException: 6
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2217) ~[guava-21.0.jar:?] {}
at com.google.common.cache.LocalCache.get(LocalCache.java:4154) ~[guava-21.0.jar:?] {}
at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:5060) ~[guava-21.0.jar:?] {}
at se.mickelus.tetra.client.model.ModularOverrideList.func_239290_a_(ModularOverrideList.java:68) ~[tetra:3.19.0] {re:classloading}
at net.minecraft.client.renderer.ItemRenderer.func_184393_a(ItemRenderer.java:365) ~[?:?] {re:mixin,pl:accesstransformer:B,xf:OptiFine:default,re:classloading,pl:accesstransformer:B,xf:OptiFine:default,pl:mixin:APP:supplementaries.mixins.json:ItemRendererMixin,pl:mixin:APP:obfuscate.mixins.json:client.ItemRendererMixin,pl:mixin:APP:dungeons_mobs.mixins.json:ItemRendererMixin,pl:mixin:APP:quark.mixins.json:client.ItemRendererMixin,pl:mixin:APP:charm.mixins.json:ItemRendererMixin,pl:mixin:A}
at net.minecraft.client.renderer.ItemRenderer.func_239387_b_(ItemRenderer.java:459) ~[?:?] {re:mixin,pl:accesstransformer:B,xf:OptiFine:default,re:classloading,pl:accesstransformer:B,xf:OptiFine:default,pl:mixin:APP:supplementaries.mixins.json:ItemRendererMixin,pl:mixin:APP:obfuscate.mixins.json:client.ItemRendererMixin,pl:mixin:APP:dungeons_mobs.mixins.json:ItemRendererMixin,pl:mixin:APP:quark.mixins.json:client.ItemRendererMixin,pl:mixin:APP:charm.mixins.json:ItemRendererMixin,pl:mixin:A}
at net.minecraft.client.renderer.ItemRenderer.func_239390_c_(ItemRenderer.java:443) ~[?:?] {re:mixin,pl:accesstransformer:B,xf:OptiFine:default,re:classloading,pl:accesstransformer:B,xf:OptiFine:default,pl:mixin:APP:supplementaries.mixins.json:ItemRendererMixin,pl:mixin:APP:obfuscate.mixins.json:client.ItemRendererMixin,pl:mixin:APP:dungeons_mobs.mixins.json:ItemRendererMixin,pl:mixin:APP:quark.mixins.json:client.ItemRendererMixin,pl:mixin:APP:charm.mixins.json:ItemRendererMixin,pl:mixin:A}
at net.minecraft.client.gui.toasts.RecipeToast.func_230444_a_(SourceFile:52) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.gui.toasts.ToastGui$ToastInstance.func_193684_a(SourceFile:112) ~[?:?] {re:classloading}
at net.minecraft.client.gui.toasts.ToastGui.func_238541_a_(SourceFile:32) ~[?:?] {re:classloading,pl:accesstransformer:B}
at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:979) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:betterendforge.mixins.json:MinecraftMixin,pl:mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin,pl:mixin:APP:flywheel.mixins.json:ShaderCloseMixin,pl:mixin:APP:abnormals_core.mixins.json:client.MinecraftMixin,pl:mixin:APP:outer_end.mixins.json:BackgroundMusicMixin,pl:mixin:APP:charm.mixins.json:accessor.MinecraftAccessor,pl:mixin:APP:fancymenu.general.mixin.json:MixinMinecraft,pl:mixin:APP:drippyloadingscreen.mixin.json:MixinMinecraft,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:randompatches.mixins.json:client.MinecraftMixin,pl:mixin:APP:betterendforge.mixins.json:MinecraftMixin,pl:mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin,pl:mixin:APP:flywheel.mixins.json:ShaderCloseMixin,pl:mixin:APP:abnormals_core.mixins.json:client.MinecraftMixin,pl:mixin:APP:outer_end.mixins.json:BackgroundMusicMixin,pl:mixin:APP:charm.mixins.json:accessor.MinecraftAccessor,pl:mixin:APP:fancymenu.general.mixin.json:MixinMinecraft,pl:mixin:APP:drippyloadingscreen.mixin.json:MixinMinecraft,pl:mixin:APP:create.mixins.json:WindowResizeMixin,pl:mixin:A,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:184) ~[minecraft-1.16.5-client.jar:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_301] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_301] {}
at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) ~[forge-1.16.5-36.2.19-launcher.jar:36.2] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {re:classloading}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {re:classloading}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_301] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_301] {}
at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:57) [ForgeWrapper-1.5.3.jar:1.5.3] {}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_301] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_301] {}
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_301] {}
at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:210) [NewLaunch.jar:?] {}
at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:245) [NewLaunch.jar:?] {}
at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?] {}
at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?] {}
Caused by: java.lang.ArrayIndexOutOfBoundsException: 6
at net.minecraftforge.client.model.pipeline.BakedQuadBuilder.put(BakedQuadBuilder.java:103) ~[forge:?] {re:classloading}
at se.mickelus.tetra.client.model.ModularItemModel.putVertex(ModularItemModel.java:275) ~[tetra:3.19.0] {re:classloading}
at se.mickelus.tetra.client.model.ModularItemModel.buildQuad(ModularItemModel.java:236) ~[tetra:3.19.0] {re:classloading}
at se.mickelus.tetra.client.model.ModularItemModel.buildSideQuad(ModularItemModel.java:209) ~[tetra:3.19.0] {re:classloading}
at se.mickelus.tetra.client.model.ModularItemModel.getQuadsForSprite(ModularItemModel.java:133) ~[tetra:3.19.0] {re:classloading}
at se.mickelus.tetra.client.model.ModularItemModel.realBake(ModularItemModel.java:89) ~[tetra:3.19.0] {re:classloading}
at se.mickelus.tetra.client.model.ModularOverrideList.getOverrideModel(ModularOverrideList.java:83) ~[tetra:3.19.0] {re:classloading}
at se.mickelus.tetra.client.model.ModularOverrideList.lambda$getOverrideModel$0(ModularOverrideList.java:68) ~[tetra:3.19.0] {re:classloading}
at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:5065) ~[guava-21.0.jar:?] {}
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) ~[guava-21.0.jar:?] {}
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) ~[guava-21.0.jar:?] {}
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) ~[guava-21.0.jar:?] {}
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) ~[guava-21.0.jar:?] {}
... 35 more
I was having the same problem. Turning off custom items, custom GUIs, and custom entity models in optifine fixed this for me.
Happens on 1.18.2 Forge 40.2.0 too, but having the items in your hotbar doesn't crash the game, only an inventory (maybe because I have complementary in basic rp mode?). It is interesting to me that if you restart the game but still have shaders enabled, it works, and it still crashes if you turn off shaders before you restart the game.
Something else I noticed while I had not enough crashes installed crashes installed, you will be taken back to the main menu when it crashes but if you rejoin your server before restarting the game it still crashes. Restarting the game is the only thing that seems to magically be fixing this issue.
Same issue here, I was just testing things out for a modpack im creating and i was going to test a modded enchant on a modified tetra diamond pickaxe, but as soon as I drop the vanilla pickaxe in the workbench i instantly crash.
Hey, with the latest new update to tetra, you can actually use tools and the rest with optifine without the game crashing as far as i can tell, however, whenever you use shaders with optifine the game crashes.
Can confirm. Had a crash under similar circumstances.
Crash log: https://pastebin.com/Y5gGRskh
Minecraft: 1.16.4
Forge: 35.1.37
Tetra: 3.8.0
Optifine: OptiFine_1.16.4_HD_U_G7