A full replacement of the Minecraft lighting engine with an extendable API, shipping with Phosphor as a reference implementation.
Dependencies
Performance
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.
Incompatibilities
- 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.
Authors
Credits
- embeddedt
- The initial port of Phosphor into 1.7.10
- CaffeineMC
- Creating the original Phosphor