-
Bug
-
Resolution: Unresolved
-
None
-
1.19.4, 1.20 Pre-release 1, 1.20.2, 24w04a
-
Confirmed
-
Performance, Textures and models
-
Normal
-
Gameplay
The bug
The specifications for hanging propagules are several times larger than they need to be.
Many of the model elements of hanging propagules are flat planes, meaning that only two sides of said elements are ever visible (e.g. top and bottom). However, the model files define faces for all six sides of these planes as if they were full cuboids, despite the fact that due to being planes, four of these "sides" have zero area and are mathematically impossible to see. Despite being invisible in practice, the game tries to render these anyway, causing a bunch of render lag we really don't need (and may be in part responsible for MC-250246).
If we modify the propagule models to delete these unwanted faces, we can see a noticeable uptick in framerate in regions containing large amounts of mangrove propagules, while not changing how they look in the slightest.
As it is in vanilla, hanging mangrove propagules of ages 2, 3 and 4 are the most complex block models in the game, beating even vanilla cauldrons. We can more than half the amount of faces that every type of propagule needs, though, without changing anything visual about them at all. To be specific:
- Age 0 propagules use 42 faces, but only need 18
- Age 1 propagules use 48 faces, but only need 22
- Age 2, 3 and 4 propagules use 60 faces (two more than the cauldron at 58 - see MC-262470), but only need 26
I believe MC-260296 was the exact same issue as this (zero-width faces), but with pink petals, and was fixed promptly while this still remains an issue.
How to reproduce
(Note: Due to MC-118624, we cannot create a superflat world to demonstrate this issue like with other optimization tickets I've made.)
- Download the attached resource pack
- Go to a region of your creative world you don't care about (you can use a default superflat world for this to cut out any unwanted FPS lag sources)
- Execute this command:
/fill ~-50 ~1 ~-50 ~50 ~1 ~50 minecraft:mangrove_leaves[persistent=true]
- Repeat the command, replacing both cases of "~1" with "~3", "~5", ... up to some odd number you're happy with
- Without moving, now execute the following command:
/fill ~-50 ~0 ~-50 ~50 ~0 ~50 minecraft:mangrove_propagule[age=4,hanging=true]
- Repeat this command as well, replacing both "~0" instances with even numbers until you're one lower than the odd number you previously stopped at
- Use Spectator mode to fly out of this mess, then go to one of the corners of this infernal mangrove lasagna you've created and switch back to Creative mode
- Point the player camera at this preposterous pile of propagule plywood
- Set your render distance to 4 chunks
- Open the FPS meter by using F3+2
- Observe how it performs with the vanilla resources versus with the attached propagule fix resource pack
Expected results
Acceptable framerates.
Actual results
A client lagfest.
How to fix
This should be a very easy fix. The resource pack attached contains complete fixes for all five affected mangrove propagule models, so it should be as easy as just replacing the five vanilla hanging propagule models with those in the resource pack. I've also deleted some redundant lines from the model files which rotate elements by 0 degrees, which is identical to doing nothing.
As I've said many times before (do I even need to say this anyway?), Mojang have my full permission to use all of these model files to fix this issue, and are strongly encouraged to do so. Everyone wants the game to perform better, and this is just one way we can make that happen.
- relates to
-
MC-262427 Flower pots and potted objects have very poorly optimized models and strange texture mapping
- Open
-
MC-262452 Hopper models are unoptimized and cause rendering lag
- Open
-
MC-262461 Stair models are unoptimized and can cause rendering lag
- Open
-
MC-262470 Cauldron models are very unoptimized, causing render lag
- Open
-
MC-262527 Item frame models are quite unoptimized
- Open
-
MC-262641 Chorus flower models are incredibly unoptimized and cause serious rendering lag
- Open
-
MC-267127 Composter model is unoptimized, causing extra rendering lag
- Open
-
MC-250246 Moving in mangrove swamps FPS/TPS drop below normal forests
- Reopened
-
MC-252693 Huge FPS drop in areas with a lot of honey blocks and slime blocks
- Resolved
-
MC-260296 Pink petal block models are not optimized
- Resolved
-
MC-262652 Dragon egg's side texture is mapped strangely as of 1.8 (and the model is also unoptimized)
- Resolved
-
MC-262953 Fence gate models are very unoptimized, causing lag among other issues
- Open
-
MC-267281 Fence multipart model system performance optimization
- Open
-
MC-267315 Rendering performance optimization for glass pane models
- Open
-
MC-267864 Two-tall plant model/rendering not optimized
- Open