Skip to content

Phosphor 0.7.0 for Minecraft 1.16.2+

Compare
Choose a tag to compare
@jellysquid3 jellysquid3 released this 18 Dec 05:54
· 31 commits to 1.16.x/dev since this release
a38b1bd

This release fixes a few bugs in earlier versions of Phosphor and includes many new patches by @PhiPro95 which fix bugs and other performance sore spots in the vanilla lighting engine. Minecraft 1.16.2 or newer is required for this release as these new patches depend on recent changes in vanilla.

New Patches

  • Fixes for lag spikes that would occur when crossing certain chunk boundaries (MC-162253)
  • Fixed an issue where light propagation would become stuck due to light maps being removed (MC-169913)
  • Fixed a number of issues that would cause sky-light maps to not be properly initialized (MC-170010)
  • Fixed a bug where queued light maps would be ignored during skylight initialization and propagation (MC-196614)
  • Fixed a problem that would sometimes cause light maps to be incorrectly dropped when unloading chunks (MC-196725)
  • Fixed a problem where stripping uninitialized sky light maps would cause issues with downward skylight propagation (MC-198987)
  • Added some general clean ups for the lighting engine's handling of skylight propagation (MC-196542)

Improvements

  • Added additional optimizations for reading block states from the world when spreading light through the world
  • Added a fast-path for sky light propagation when traversing through air blocks only
  • Light propagation now avoids merging block shapes to figure out whether or not light can seep through a block in the world

Bug Fixes

  • Fixed an issue that would result in empty chunk sections being treated as unloaded, resulting in random darkened areas to appear on the ground in a grid-like pattern when placing blocks in the sky
  • Fixed a problem where cached lighting data in chunk (-1, -1) would not be initialized if it was the first chunk lit upon starting a world

Changes

  • Simplified the critical section of the double-buffered map types to help reduce lock contention
  • Replaced custom SeqLock with the standard library's (more correct) StampedLock