Flywheel (Legacy)

Flywheel (Legacy)

43M Downloads

Crash on NeoForge 1.21.1-21.1.145 with `Remove Reloading Screen` mod

mpustovoi opened this issue ยท 2 comments

commented

Describe the Bug

After updating Vanillin from 1.0.0 to 1.1.0 in my heavily modded instance my game crashed when I try to create or enter the world.

I tracked down the issue to a minimal setup with Create & Vanillin + Remove Reloading Screen.

Reproduction Steps

  1. Install Create & Vanillin.
  2. Install Remove Reloading Screen.
  3. Launch the game and create a new world. It crashes right after 100% loading & "Saving world".

Expected Result

The game should work fine like it did with Vanillin 1.0.0

Crash Report or Log

Logs: https://mclo.gs/E4iPstb.
Crash report: https://mclo.gs/CJX6joM.

Operating System

Windows 10

What is your GPU?

Nvidia GeForce GTX 1060

Mod Version

1.1.0

Minecraft Version

1.21.1

Loader Version

NeoForge 1.21.1-21.1.145

Other Mods

  • Create 1.21.1-6.0.4
  • Remove Reloading Screen 5.0.9+mc1.21.1-forge

Additional Context

The issue isn't there with Vanillin 1.0.0 on the minimal setup or on heavily modified instance.

Sometimes the issue doesn't appear in logs, but it's always there in the crash report.

commented

It may be useful to you, the crash is caused by the minecraft font reloader closing the texture you are trying to upload

Stacktrace:

java.lang.Throwable: null
at TRANSFORMER/minecraft@1.21.1/com.mojang.blaze3d.platform.NativeImage.handler$zzk000$rrls$setClosed(NativeImage.java:764) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/com.mojang.blaze3d.platform.NativeImage.close(NativeImage.java:175) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.gui.font.providers.BitmapProvider.close(BitmapProvider.java:42) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~\[?:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.gui.font.FontManager.apply(FontManager.java:274) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.gui.font.FontManager.lambda$reload$1(FontManager.java:164) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~\[?:?\]
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~\[?:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:148) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:111) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.Minecraft.runTick(Minecraft.java:1155) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.Minecraft.run(Minecraft.java:807) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]
at TRANSFORMER/minecraft@1.21.1/net.minecraft.client.main.Main.main(Main.java:230) ~\[client-1.21.1-20240808.144430-srg.jar%23183!/:?\]

Rrls reloads the fonts twice, once for itself, the second time for vanilla minecraft, maybe the reason is this

commented

Huh nice report. Vanillin does some kinda cursed stuff to make fonts usable from off of the main thread, and it looks like that is having an interaction with rrls that causes a font texture to be deleted between vanillin scheduling an upload off-thread, and the upload actually going through on the main thread.