From 0dd4b2d65a79e861f33e1984faf84a310d50784e Mon Sep 17 00:00:00 2001 From: tildejustin Date: Sun, 23 Feb 2025 14:34:44 -0500 Subject: [PATCH] 2.4.1: handle unload first for re-sent chunks when chunks are re-sent to the client (ex. respawn), sodium marks each section to be unloaded and then reloaded. the immediate rebuilds were processed before processing the unload queue, so the occlusion cache for prioritized chunks would be set to that of ChunkRenderData.ABSENT after the forced rebuild --- gradle.properties | 2 +- .../mods/sodium/client/render/SodiumWorldRenderer.java | 2 ++ .../mods/sodium/client/render/chunk/ChunkRenderManager.java | 3 +-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index b587f24d..810825e7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs = -Xmx2G org.gradle.parallel = true org.gradle.caching = true -mod_version = 2.4.0 +mod_version = 2.4.1 minecraft_version = 1.16.1 # https://github.com/tildejustin/yarn/tags diff --git a/src/main/java/me/jellysquid/mods/sodium/client/render/SodiumWorldRenderer.java b/src/main/java/me/jellysquid/mods/sodium/client/render/SodiumWorldRenderer.java index 1b72e980..3ad5c8e4 100644 --- a/src/main/java/me/jellysquid/mods/sodium/client/render/SodiumWorldRenderer.java +++ b/src/main/java/me/jellysquid/mods/sodium/client/render/SodiumWorldRenderer.java @@ -179,6 +179,8 @@ public void updateChunks(Camera camera, Frustum frustum, boolean hasForcedFrustu this.lastCameraPitch = pitch; this.lastCameraYaw = yaw; + this.chunkRenderManager.unloadPending(); + profiler.swap("chunk_update"); this.chunkRenderManager.updateChunks(); diff --git a/src/main/java/me/jellysquid/mods/sodium/client/render/chunk/ChunkRenderManager.java b/src/main/java/me/jellysquid/mods/sodium/client/render/chunk/ChunkRenderManager.java index 4989920f..9dfd330d 100644 --- a/src/main/java/me/jellysquid/mods/sodium/client/render/chunk/ChunkRenderManager.java +++ b/src/main/java/me/jellysquid/mods/sodium/client/render/chunk/ChunkRenderManager.java @@ -117,7 +117,6 @@ public ChunkRenderManager(SodiumWorldRenderer renderer, ChunkRenderBackend ba public void update(Camera camera, FrustumExtended frustum, int frame, boolean spectator) { this.reset(); - this.unloadPending(); this.setup(camera); this.iterateChunks(camera, frustum, frame, spectator); @@ -286,7 +285,7 @@ private void reset() { this.visibleChunkCount = 0; } - private void unloadPending() { + public void unloadPending() { while (!this.unloadQueue.isEmpty()) { this.unloadQueue.dequeue() .delete();