tetra icon indicating copy to clipboard operation
tetra copied to clipboard

Switching Optifine shaders, then rendering a modular item, crashes the game.

Open AdamEternal opened this issue 3 years ago • 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

  1. Enter a world.
  2. Change which Optifine shaders you're using. (Changing between "off" and "internal" counts.)
  3. Cause the game to render a modular Tetra item. (Have a hammer in your hotbar, for example.)

AdamEternal avatar Mar 26 '21 00:03 AdamEternal

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

stingie avatar Mar 29 '21 01:03 stingie

Also crashed in similar circumstances

RGFTheCoder avatar Apr 06 '21 22:04 RGFTheCoder

Does it still crash if you reload resources (F3 + T) after changing shaders?

mickelus avatar Apr 07 '21 15:04 mickelus

Does it still crash if you reload resources (F3 + T) after changing shaders?

Yes. Just tested. Reloading resources seems to have no effect on the results.

AdamEternal avatar Apr 08 '21 00:04 AdamEternal

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.

Explode007 avatar Jun 17 '21 18:06 Explode007

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.

Explode007 avatar Jul 10 '21 16:07 Explode007

Hey mickelus, do you have an ETA on when this will be fixed?

Explode007 avatar Jul 15 '21 15:07 Explode007

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

dbjorge avatar Nov 25 '21 06:11 dbjorge

I was having the same problem. Turning off custom items, custom GUIs, and custom entity models in optifine fixed this for me.

8bitsam avatar Jan 10 '22 23:01 8bitsam

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.

StormDragon-64 avatar May 28 '23 15:05 StormDragon-64