Uploaded image for project: 'Minecraft (Bedrock codebase)'
  1. Minecraft (Bedrock codebase)
  2. MCPE-173706

Chunk-wide block rendering lag triggered by block updates along chunk borders

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • 1.20.30.24 Preview, 1.20.30
    • 1.20.0, 1.20.12 Hotfix, 1.20.30.24 Preview, 1.20.15 Hotfix
    • None
    • Confirmed
    • Multiple
    • 1086489

      Note from GoldenHelmet

      With the 1.20.0 release some players noticed a sharp increase in visual lag around complex builds that use repeating redstone or moving blocks (e.g. storage systems, portal ticking farms, tree farms). This lag can also be see with simpler builds like feedtape smelters and lighthouses (redstone lamps lit by a ring of observers) on weaker devices. The lag includes blocks like redstone dust and observers not updating visually when powered/depowered, blocks taking seconds to update visually and not showing particles when broken or placed, and all kinds of block faces failing to render (i.e. x-ray view) as you move around a build. In some cases the lag eventually causes a crash.

      Here is an example of the visual lag from a portal ticking gold farm + storage that I was working on the week of the release: Client block update lag 1.20.mp4. The x-ray effect on this build did not occur before 1.20 despite the fact that in 1.19 there were on average about twice as many xp orbs being rendered while running the farm (since xp orb merging had not been implemented).

      The visual lag is triggered by block updates on either side of the borders of a chunk where other things are happening. Strangely, it un-triggers while jumping or free-falling. To see this use the following steps:

      1. Load Copy of v22 OK.mcworld. This world contains two towers of a general mob farm. You should load in chunk where the tower is split into two sections, each with its own trident killer and storage. Note the 4 game tick redstone clock that is powering the droppers below the trident killer.
      2. Place and break blocks on top of either of the two pink concrete blocks in front of you while watching the redstone clock mentioned above. These blocks straddle the Z = -80 to -81 chunk border.
      3. For comparison, place blocks nearby the pink concrete but not on that chunk border.
      4. Place an observer at 7, 87, -80 facing the observer at 7, 87, -79, then stand back and watch the redstone clock mentioned above, as well as the redstone dust going from the observers to the pistons that bounce tridents. MCPE-173706 repro.mp4
      5. With the observer that was place in step (3) still running the piston clock, stand somewhere you can see one of the redstone clocks running and jump repeatedly. Then fly up a bit and free-fall down while watching the redstone dust. MCPE-173706 jump unbug.mp4

      Expected results

      Blocks placed or broken or updated on chunk borders take the same mount of time to render as blocks placed, broken, or updated elsewhere; and this does not trigger seconds-long delays in visual block texture updates throughout the chunk. Repeating block updates on chunk borders (such as from redstone clocks) do not suspend visual block texture updates throughout a chunk. Smooth rendering of block updates occurs regardless of whether the player is jumping and falling.

      Observed results

      In a chunk with various texture animations, entity updates, and redstone updates happening, blocks placed or broken or updated along either side of the borders of that chunk can take a long time to update visually and can trigger seconds-long delays in visual updates of other blocks in the chunk. Repeating block updates on the borders of these chunks suspend visual block texture updates throughout the chunk. These effects do not occur while the player is jumping or free-falling.

      Note:

      The steps given below by the reporter may reproduce the bug on some devices. In their test world, there is a piston and moving blocks and redstone torches repeatedly updating on a chunk border.

      Blocks do not update visually when a large amount of data is requested at once.

      Steps to reproduce in:

      1. Open MCPE-173706 _ Block update.mcworld
      2. activate command block (farm simulator with mobs)
      3. activate the other two remaining levers
      4. open the door until you see that it doesn't update visually
      5. when you see that the blocks are not updated visually, change the value on the Y axis so that it remains fixed, that is, it jumps

      The observed result:
      blocks don't update visually when you stay static.

      The expected result:
      blocks update visually when you stay static.

        1. Beta 1.20.30.24 (MCPE-173706).mp4
          4.84 MB
        2. Client block update lag 1.20.mp4
          8.86 MB
        3. Copy of v22 OK.mcworld
          4.80 MB
        4. LOOK.mp4
          2.68 MB
        5. MCPE-173706 _ Block update.mcworld
          97 kB
        6. MCPE-173706.jpg
          MCPE-173706.jpg
          447 kB
        7. MCPE-173706 jump unbug.mp4
          4.39 MB
        8. MCPE-173706 repro.mp4
          9.83 MB
        9. Screenrecorder-2023-07-29-13-13-25-848.mp4
          2.58 MB
        10. Screenshot_2023-07-29-13-12-48-951_com.mojang.minecraftpe.jpg
          Screenshot_2023-07-29-13-12-48-951_com.mojang.minecraftpe.jpg
          723 kB

            Timer RP Timer RP
            Votes:
            7 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: