Skip to content
Zeolite

Quick rating

Community listing page, reviews may not be monitored by the author.

Zeolite

No reviews yet

Unseen level of Display Entity optimization

Mod Loaders
Minecraft

About

Description

⚡ Zeolite ⚡

Unseen level of Display Entity optimization

⚠️ Early Alpha — this project is at an early stage of development, bugs may be frequent for now!

Optimization showcase

🚀 Optimizations 🚀

#OptimizationWhat it doesFPS win
1UBO instancing (dynamic tier)One draw renders every display of a model via instanced UBO records58 → 1323 (~23×)
2Static tier bakingStable displays bake into combined buffers, one draw per material, zero per-frame CPU~0 CPU/frame at 10000 displays
3GPU animation textureKeyframe lerps evaluate on the GPU, no per-frame CPU work26 → 625 (~24×)
4Animation loop lock-onRepeating cycles become self-running GPU loop programs0 uploads while locked
5Coalesced uploads + stream ringDirty ranges merge and stream through a persistent-mapped ring491 → 625 (+27%)
6Content-based resync filterDeep compare stops identical server resyncs from forcing rebakes0 false rebakes
7Mesh capture cache + canonical head modelEach state bakes once; all heads share one skull mesh24 → 1712 (~71×)
8Head skin atlasAll skins live in one atlas, so heads stay a single drawEnables #7 / #14
9Glint canonicalizationGlint renders as a second layer, not a second model39 → 1549 (~40×)
10Text glyph instancingGlyphs are compact instanced records in per-bucket UBOs20 → 116 (~6×)
11Instanced shadowsGround shadows pool into a few instanced draws49 600 pieces, no extra draws
12Two-level cullingCPU frustum per draw group + per-instance GPU cullDraws → 0 when looking away
13Origin-relative coordinatesPositions stored relative to a rebased render originFloat precision at far coords
14Shaded static pipelines (Iris)Batches re-bake into the pack's own gbuffer programs19 → 280 (~15×)
15Resident rebake under packAnimating batches rewrite in place instead of demotingStays 1 draw under packs
16Promotion budget + light bandsPromotion caps and distance-staggered light refreshNo hitch frames

🌈 Shader Support 🌈

Zeolite stays batched under Sodium + Iris — shaded static pipelines (#14) and resident rebake (#15) keep displays in a few draws even with a pack active.

Making this possible comes with some FPS costs:

CostWhyImpact
Sodium + Iris installed (shaders OFF)The mods wrap the render pipeline even with no pack active — this is their own overhead, not Zeolite's~20–30% FPS
Shader pack activeThe pack's gbuffer/shadow programs are inherently expensive; the shaded static tier recovers most of it19 → 280 (~15×) with Zeolite

Small visual regressions are possible on batched displays under shader packs:

Visual regression showcase

📦 Supported Versions 📦

VersionStatus
1.21.11✅ Supported
26.1🚧 Possible in near future
26.2❌ Unlikely due to Vulkan

🛠️ Modloader Support 🛠️

ModloaderStatus
Fabric✅ Supported
NeoForge❌ Won't be supported

💬 Community & Support 💬

If you have questions or suggestions, tell us about them on our Discord server!

🐛 Found a bug? Report it on the Issue Tracker!