Sodium

Sodium

35M Downloads

Chunks shortly disappear when updated a certain way

Johni0702 opened this issue ยท 2 comments

commented

Version Information

Present in mc1.16.5-0.2.0+build.4, but not in mc1.16.3-0.1.0 (or Vanilla). Bisected to 0de23d4.

git bisect log
git bisect start
# bad: [53a5a2bbfbae04d1159f7a83367a393573695792] change: Tweak usage hints for multi-draw command buffer
git bisect bad 53a5a2bbfbae04d1159f7a83367a393573695792
# good: [2af6510d167f99f2dd68b2b5c46df01415c6169d] Update to Minecraft 1.16.3
git bisect good 2af6510d167f99f2dd68b2b5c46df01415c6169d
# bad: [5545895d77f9a8f38bf936ba19a253abf36d92e7] change: Tag build artifacts more thoroughly
git bisect bad 5545895d77f9a8f38bf936ba19a253abf36d92e7
# good: [4ee5a37d0814bb66439ad72219943909f84597df] new: Implement optimized vertex writing
git bisect good 4ee5a37d0814bb66439ad72219943909f84597df
# bad: [d8e75dd045b2de7de661fe89f6f8136c6611277a] fix: Blacklist all Intel GPUs from using the 4.3 renderer on Windows
git bisect bad d8e75dd045b2de7de661fe89f6f8136c6611277a
# bad: [27347710b3483cb5f02111e6dd344e45911f38c9] buffer_builder/fast_advance: Fix using a fixed color (#474)
git bisect bad 27347710b3483cb5f02111e6dd344e45911f38c9
# good: [46c17ce4b88bca3e7acc1149248c914f350833d5] new: Use new vertex sinks in chunk rendering
git bisect good 46c17ce4b88bca3e7acc1149248c914f350833d5
# bad: [1e08e211f8063cc617e986228798aad0ac01e7b6] change: Use branchless algorithm for computing a chunk's boundaries
git bisect bad 1e08e211f8063cc617e986228798aad0ac01e7b6
# bad: [0de23d4516bf0e9c7d32f33dbe07b44c31bfc4a8] change: Split chunk rendering and culling code
git bisect bad 0de23d4516bf0e9c7d32f33dbe07b44c31bfc4a8
# first bad commit: [0de23d4516bf0e9c7d32f33dbe07b44c31bfc4a8] change: Split chunk rendering and culling code

Expected Behavior

Updated chunk geometry seamlessly replaces old geometry.

Actual Behavior

Old geometry seems to stop rendering before the updated geometry is ready.

chunk-rebuild.mp4

Reproduction Steps

The issue is likely specific to how this server (play.wynncraft.com) sends its animations (they can be different for every player, so something highly custom is going on), so I was unable to find a simple way to reproduce it.

The easiest way to reproduce it which I could think of is by using the ReplayMod to re-play the scene shown in above video:

  1. Install Sodium + ReplayMod
  2. Download chunk-rebuild.zip, change its file extension from zip to mcpr (GitHub filters file extensions) and place it into .minecraft/replay_recordings/
  3. Start the game, click the Replay Viewer button and load the replay
  4. Position yourself at sufficient distance (if you are too close, then the main thread will wait for the chunk rebuilds, mitigating the issue) and observe

The issue can also be reproduced without the ReplayMod by just running around on the server (though not very consistent / seems to depend on where you are on the map) or triggering certain animations (though this requires that you have played on the server and can access those, e.g. the ship you use for the "The Order of the Grook" quest on Mage Island can be easily triggered and then observed from a distance).

System Information

  • Java Version: OpenJDK 11.0.11 (Debian bullseye)
  • CPU: AMD Ryzen 5 5600X 6-Core
  • GPU: AMD Radeon RX 5700 XT (Mesa 20.3.4)
commented

Does this still occur with Sodium 0.3?

commented

Nope, working as it should with mc1.17.1-0.3.0+build.5.