Repository navigation
Fusion
Minecraft 1.20.1 / Forge: this page documents that build and its measurements. For the separate 170-control Minecraft 1.21.1 port, see Minecraft 1.21.1 NeoForge.
Two client-side controls for Fusion 1.3.14+a (mod id fusion), both added in 1.0.26: chunk-layer checks read the layer id Forge already stores on every render type, and connected-texture lookups compare blocks by identity and hash each connection key once. The separate BonsFusion mod is not part of this JAR. Another Fusion build is left untouched with one WARN line.
| Key | Target | Side | Since | Kind |
|---|---|---|---|---|
fusion_chunk_layer_id |
Fusion 1.3.14+a | CLIENT | 1.0.26 | opt |
fusion_connection_lookups |
Fusion 1.3.14+a | CLIENT | 1.0.26 | opt |
Since: 1.0.26 · Target: Fusion 1.3.14+a · Side: CLIENT · Kind: opt
Mixins: ChunkLayerIdMixin
Fusion keeps its connected-texture quads in small per-layer maps, and every access asks whether the render type is one of the five chunk layers (an equals search through the layer list) and then looks its index up in a map. Forge already gives every render type that index: the chunk layers get 0 to 4 in the same list order, every other type gets -1. The two checks now read it. Only Oculus' wrapper render types define their own equals, and none of them matches another class, so every answer stays the same, including for render types that are not chunk layers.
Measured: in a harness running Fusion's own classes, the per-face layer-map work took 123 ns instead of 171 (1.4x faster), no change in allocation; these checks were about 2% of chunk meshing time.
In-game section comparisons found no differing vertex/index data. The isolated in-game timing difference was inside the rig's noise; the method-level speedup above is not a demonstrated whole-meshing or FPS gain. The separate BonsFusion changes are not part of this JAR.
Since: 1.0.26 · Target: Fusion 1.3.14+a · Side: CLIENT · Kind: opt
Mixins: ConnectionKeyHashMixin, MatchBlockIdentityMixin
Two lookups on Fusion's connected-texture path. The key under which Fusion stores a face's connection result hashed all of its parts on every store access (two to three per connected face), every block of a block list included; the parts never change, so the first hash is now kept, computed exactly the way Java computes it for any record. A "match these blocks" condition asked its block set whether it holds the neighbour, which calls equals and hashCode on blocks; no block in the pack defines either (checked again at startup over every registered block), so sets of up to 16 blocks are now scanned by identity. Larger sets, and any pack where a block does define equals, keep Fusion's set.
Measured: in a harness running Fusion's own classes, block checks 1.3x to 1.9x faster (4.2 ns instead of 6.2 for one or two blocks) and the key's use in the property store 1.3x faster; no change in allocation.
In-game section comparisons found no differing vertex/index data. The isolated in-game timing difference was inside the rig's noise; the method-level speedup above is not a demonstrated whole-meshing or FPS gain. The separate BonsFusion changes are not part of this JAR.
Since 1.0.34. The values this control keeps on a record class are skipped by Gson. Up to 1.0.33 a mod that saves such a record with Gson failed with a NoSuchMethodException, because Gson asks a record for an accessor for every field it holds (reported with Dragon Mounts Remastered on Minecraft 1.21.1; no case is confirmed on Forge 1.20.1). Nothing else changes.
Bons and Furious is licensed GPL-3.0-only with upstream notices retained. Target mod names identify compatibility targets and do not imply endorsement; their code, assets and licenses remain their authors' property. All measurements on this wiki are focused method, phase or reproduction measurements from the pack the mod was built for, taken on the historical build named in each entry; they are not whole-game FPS or TPS promises and are not additive.
Bons and Furious
Minecraft 1.20.1 / Forge 1.0.34
- Home
- Installation and configuration
- How the patches are applied
- All controls
- Measurements and caveats
- Whole-modpack benchmark
- Troubleshooting and log messages
- Generation context fixes
- Version history
Compatibility
- Compatibility
- Known conflicts and workarounds
- Tested mod list
- Redundant mods
- Compatibility and target versions
Controls by mod
- Minecraft (51)
- Forge (6)
- Ad Astra (1)
- Alex's Caves (4)
- Alex's Mobs (2)
- Almost Unified (1)
- AmbientSounds (3)
- Architectury API (1)
- Ars Nouveau (2)
- Artifacts (1)
- Better Combat (1)
- Bosses of Mass Destruction (1)
- Butterflies (1)
- ChunkSending (1)
- CIT Reforged (1)
- Citadel (1)
- CoFH Core (1)
- Colorwheel (1)
- Cooking for Blockheads (1)
- Create (4)
- Critters and Companions (1)
- Cryptic Foes (2)
- Cucumber (1)
- Curios API (6)
- Distant Horizons (17)
- Dungeons Delight (1)
- Dynamic Trees (2)
- Embeddium (13)
- Entity Model Features (4)
- Entity Texture Features (1)
- EntityCulling (1)
- FancyMenu (1)
- Farmer's Delight (2)
- FD Bosses (2)
- Fowl Play (2)
- Fusion (2)
- GeckoLib (5)
- Goblins Tyranny (2)
- Hostile Villages (2)
- Ice and Fire (6)
- ImmediatelyFast (3)
- Immersive Engineering (1)
- Jaden's Nether Expansion (1)
- JEI (7)
- Kiwi (1)
- L2 Library (2)
- Legendary Monsters (1)
- Lionfish API (2)
- ModernFix (4)
- Mowzie's Mobs (1)
- Mutant Monsters (1)
- Nether Depths Upgrade (1)
- Occult (1)
- Oculus (12)
- Oh The Biomes We've Gone (1)
- Particular (1)
- Pehkui (1)
- Pipez (2)
- Placebo (1)
- Presence Footsteps (1)
- Radium Re-Reforged (8)
- Regions Unexplored (1)
- Relics (2)
- Ribbits (1)
- Ryoamic Lights (2)
- Sake's Structures (1)
- Scorched (1)
- Scuba Gear (1)
- Simply Swords (1)
- SlashBlade: Resharped (1)
- Slice & Dice (1)
- Spawn (4)
- Storage Drawers (2)
- Structure Gel API (1)
- Structurify (3)
- TaCZ (2)
- TerraBlender (2)
- Terramity (1)
- Under the Moon (1)
- Valkyrien Skies (15)
- Trackwork model repair
- Living Engineering (moved out in 1.0.20)
Links