dlee13/hold-that-chunk

Missing parts of cached chunks

Closed this issue · 9 comments

This is a report on MeklanB's behalf before they commented here.

In HoldThatChunk v1.0.3 on Minecraft 1.19.2, there are visual artifacts and X-ray glitches in chunks that should be cached. These glitches are not present in a similar mod, Farsight and they appeared only when flying, not walking.

Getting visual artifacts and missing surfaces (resulting in x-ray) when flying in and out of chunks that should be in memory.

Screenshot album: https://imgur.com/a/p5ReFeD

Note that these tests were conducted in the modpack Fabulously Optimized versions 4.2.0-beta.1 (manually replaced Farsight with Hold That Chunk) and 4.2.0-beta.2 (contains Hold That Chunk without Farsight). Unfortunately it is currently unknown whether this is reproducible with just Hold That Chunk, without the other mods.

I'm not seeing these issues when testing Hold That Chunk in isolation in a vanilla MC instance. I'm going to start flipping through FO's mod list to see which may introduce issues.

Confirmed the issues did not arise with Sodium, Lithium, MemoryLeakFix, or Starlight.

The chunks are in the chunk cache, but the level renderer may sometimes skip drawing chunks that are outside the effective render distance. The effective render distance is calculated by taking the minimum between the client render distance and the server render distance. Farsight would have the same behavior if you configure its max distance option to be the same as the server render distance.

I have this same issue, this happens in farsight as well when I adjust the config to match the servers render distance as you said.

What if Hold That Chunk used client render distance + constant to workaround this bug? Such as 12 + 2.
Because it would still render by the client render distance, it shouldn't affect performance that much.

Because it would still render by the client render distance, it shouldn't affect performance that much.

It will always render by the effective render distance.

If you set ignoreServerRenderDistance to false, it follows vanilla behavior for calculating the effective render distance. The effective render distance is the lower value between client render distance and server render distance. If you set it true, it replaces the server render distance with the value of the client render distance, thereby making the effective render distance equal to client render distance.

Essentially, when you play on a server, it's as if the client render distance is ignored since client render distance is typically set higher than server render distance. The effective render distance is used for multiple things, including how far the level renderer will always draw chunks and where to place the fog.

I think I will have to investigate this a lot more before I can come up with a solution.

Has this been fixed with 2.0.0?

It has not.

dlee13 commented

In my testing, this is not an issue anymore. It was probably fixed by Sodium 0.5.0.

To begin with, this was a rendering bug and Hold That Chunk does nothing to the renderer.