Chunk System and Starlight WIP

Chunk system patch was refactored to take advantage of
newer ConcurrentUtil's concurrent long hash table (which
fixes hash collisions caused by chaining fastutil's long hash
and CHM's hash) plus some other minor improvements.

The chunk system was also merged with Starlight, which mostly
provides a small improvement to ThreadedLevelLightEngine#checkBlock
as the scheduling was rewritten.
This commit is contained in:
Spottedleaf
2024-06-14 17:19:25 -07:00
parent 9b34dc14d9
commit fddfa624cf
9 changed files with 28806 additions and 10 deletions

32
leaf_notes.txt Normal file
View File

@@ -0,0 +1,32 @@
- Starlight fixlight command + method on light engine (note: add to mod to, after done this)
- note: for paper, the chunk debug command
- rebase IntervalledCounter into util patch
- mcutil diff
- paper debug chunks --async in DedicatedServer
- TODO keep around region file lock?
- mcutil#getTicketLevelFor is wrong, just delete it later
- in the mod:
- ChunkHolder
- isReadyForSaving overwrite
- remove state fields in mod
- addSaveDependency overwrite
- ChunkMap
- pendingUnloads/pendingGenerationTasks/unloadQueue/ field destroy
- DistanceManager
- getTickets/dumpTickets/tickingTracker/ overwrite
- GenerationChunkHolder
- remove state fields in mod
- rescheduleChunkTask/failAndClearPendingFuturesBetween/failAndClearPendingFuture/completeFuture/
findHighestStatusWithPendingFuture/acquireStatusBump/isStatusDisallowed/ overwrite
- LayerLightEngine
- getDebugSectionType overwrite
- ThreadedLayerLightEngine
- waitForPendingTasks overwrite
on another note, clean up mcutils...
later, run a diff compared to the mod and move all of the diff to separate classes
apply todo in levelmixin
to fix later:
- Change loadedChunkMap in ServerChunkCache to use concurrent long map