A full replacement of the Minecraft lighting engine with an extendable API, shipping with Phosphor as a reference implementation.
The main performance improvement comes from the fact that the lighting engine is evaluated "lazily", thus it is able to batch more lighting updates into a single pass.
Here are some simple to understand values, generated via profiling a pre-set test case:
Test Case
- World Type: Default
- World Seed: 123
- Game Mode: Creative
- Render Distance: 16
Profiler is started right before clicking Create New World, and stopped after 10 seconds of flying in a straight line in creative mode.
Without Lumi, the active server time spent in lighting engine is 34% of the total active server time (not counting when the server thread is sleeping).
With Lumi, this fraction goes down to 13%, or an approximately 2.5x performance increase over vanilla.
Flame Graphs
Horizontal axis is time, vertical axis is the call stack. The blue highlighted parts are calls to the lighting engine update method.
- ArchaicFix: Config Change Needed
- As both mods replace the same parts of code, naturally you will need to set
enablePhosphor
tofalse
in the ArchaicFix config.
- As both mods replace the same parts of code, naturally you will need to set
- CoreTweaks: Config Change Needed
- The
fix_heightmap_range
feature is already implemented in Lumi's lighting engine. Set it tofalse
in the CoreTweaks config.
- The
Both of these configs will be automatically modified by Lumi automatically when you launch the game, so you shouldn't even need to edit the config files manually.
- embeddedt
- The initial port of Phosphor into 1.7.10
- CaffeineMC
- Creating the original Phosphor