From 2e62cdf838c10c4117a65f3b1c471fe8ecfcf2de Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Tue, 16 Jan 2018 11:42:28 +0100 Subject: [PATCH] Fix dead lock when rendering without immediate jump in time setupTerrain will loop until (among other conditions) the chunksToUpdate set is empty. However its size is never decreased during setupTerrain. Having a (backwards) jump in time right before rendering the first frame would reset the RenderGlobal due to the world change, leaving the chunksToUpdate set empty to begin with and due to other changes, chunks are never inserted into it during rendering (because they're always updated immediately). The new screenshot feature and rendering a path that's in the future will not trigger any world change, leaving the render process stuck in a life lock. --- src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java b/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java index 7f5cae0a..07b90620 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java +++ b/src/main/java/com/replaymod/render/mixin/MixinRenderGlobal.java @@ -37,6 +37,7 @@ public abstract class MixinRenderGlobal { do { setupTerrain(viewEntity, partialTicks, camera, replayModRender_hook.nextFrameId(), playerSpectator); + replayModRender_hook.updateChunks(); } while (displayListEntitiesDirty); displayListEntitiesDirty = true;