Releases: RelativityMC/C2ME-fabric
0.3.0+beta.2
C2ME Preview channel 0.3.0+beta.2 for Minecraft 1.21.3 is released
The second preview release, fixing critical issues.
Changelog since 0.3.0+beta.1:
- fix: very rare NPE in SchedulingManager#getPriority
- fix: gcFreeChunkSerializer with ioSystem.replaceImpl disabled
- fix: abysmal tectonic performance with density function compiler (now 30% faster)
- change: disable density function compiler by default
- change: adjust thread count allocation
Full Changelog: 0.3.0+beta.1...0.3.0+beta.2
0.3.0+beta.1 changelog: https://github.com/RelativityMC/C2ME-fabric/releases/tag/0.3.0%2Bbeta.1
0.3.0+beta.1
C2ME Preview channel 0.3.0+beta.1 for Minecraft 1.21.3 is released
The first preview release.
Changelog:
- build: 1.21.3
- perf: chunk system rewrite
- perf: native acceleration v2
- perf: density function compiler v0 (#361)
- perf: optimize aquifer heavily
- perf: consolidate light update notifications
- perf: improve idle loop for storage threads
- perf: reduce GC pressure
- new: further increase maximum render distance
- new: add ext_render_distance_v1 protocol for 127+ RD multiplayer
- new: log changed settings on startup
- new: actually unload POI
- new: uncap render distance in VulkanMod
- fix: mitigate ghost mushroom past simulation distance
- fix: improve player ticket consistency
- change: use twice the parallelism for notickvd max concurrent loads
Full changelog: 0.2.0+alpha.11...0.3.0+beta.1
0.2.0+alpha.11
C2ME 0.2.0+alpha.11 for Minecraft 1.20.1 is released
This release improves overall stability and performance.
Changelog:
- perf: reduces allocation pressure in scheduling
- perf: rewrites chunk priority system to better handle urgent loads
- perf: improves notickvd loading mechanism
- perf: do not depend on server thread to complete
EMPTY
state - perf: improve chunk transition speed with threaded worldgen
- new: chunk cancellation mechanism with threaded worldgen
- new: allow recover from errors in async io (disabled by default)
- new: experimental GC-Free chunk serializer (disabled by default)
- fix: a native leak by unclosed Inflaters and Deflaters
- fix: remove profiler usage in upgradeChunk to prevent issues
- fix: upgrade visibility of a mixin method to fix some incompatibiliy issues (#207)
- fix: incorrect random instance derive
- fix: prevent async save and saveAll
- fix: non-atomic player chunk position tracking in notickvd
- fix: mushrooms as ghost blocks in strange places with
fabric-biome-api-v1
(#222) - change: makes CheckedThreadLocalRandom message more clear
- change: disable reduced lock radius debugging
Full Changelog: 0.2.0+alpha.10...0.2.0+alpha.11
For 1.20.2 builds: https://ci.codemc.io/job/RelativityMC/job/C2ME-fabric/job/ver%252F1.20.2/
0.2.0+alpha.10
C2ME 0.2.0+alpha.10 for Minecraft 1.19.3 is released
This small release improves overall stability and fixes some bugs.
Changelog:
- Updates to 1.19.3
- perf: Optimizes needsBlending lookup to reduce unnecessary storage I/O and unnecessary stalls during worldgen
- fix: Disables surface builder alloc optimization when qfapi is present
- fix: Fixes some startup issues on extremely low-end devices
- fix: Fixes improper "unsafe async ServerWorld full chunk requests" handling
- change: Replaces panics with warnings when the disk is too slow when using the new optimized I/O system
- change: Enables new optimized I/O system only if the parallelism is set to 2 or above
- change: Raises soft- and hard- limits for vanilla storage cache
Full Changelog: 0.2.0+alpha.9...0.2.0+alpha.10
0.2.0+alpha.9.12
This release serves as a hotfix for any 1.19.3 versions of C2ME. As this contains out of cycle changes staged for the next alpha release it is not recommended you build this unless you're running 1.19.3.
This build contains a critical hotfix for users of Quilt. IF YOU ARE USING 1.19.3 AND QUILT UPDATE IMMEADENTLY TO PREVENT A KNOW ISSUE OF INPROPER GENERATION OF NEW CHUNKS. We are not aware of any effects on existing chunks from this issue.
0.2.0+alpha.9
C2ME 0.2.0+alpha.9 for Minecraft 1.19.2 is released
This small release improves overall stability, fixes some bugs and adds some features.
Changelog:
- Updates to 1.19.2
- Fixes some default configuration generation issues
- Try to catch off-thread access to world random to provide more information for
java.lang.IllegalStateException: Accessing LegacyRandomSource from multiple threads
- More aggressive chunk unloading to help mitigate memory issues
- Fixes some crashes related to ticket level updates
- Enables
ioSystem.replaceImpl
by default on non-Windows systems - Allows overriding default parallelism calculation
Full Changelog: 0.2.0+alpha.8...0.2.0+alpha.9
0.2.0+alpha.8
C2ME 0.2.0+alpha.8 for Minecraft 1.19 is released
This release improves overall performance and stability and fixes some bugs.
Changelog:
- Updates to 1.19
- Makes C2ME modular
- Optimizes sync loads a bit with priority system
- Implements chunkload cancellation mechanism
- Makes teleporting lag less
- Improves server shutdown times
- .. and more
- Improves the handling of async chunkload requests on WorldGen threads to fix some rare deadlock issues
- Some micro-optimizations for math used by world generation
- Improves mobcaps consistency by filtering out mobs in no-tick chunks when calculating mobcaps
- Makes the new IO system implementation priority-aware
(the new IO system can be enabled manually withioSystem.replaceImpl
in config) - Client: The default max view distance is now determined by the JVM type and the memory allocated to Minecraft.
Notes:
- The calculation of default parallelism has been changed to be more reasonable.
This means that some features may get re-enabled again by default if you are on a relatively lower-end devices
Full Changelog: 0.2.0+alpha.7...0.2.0+alpha.8
EDIT: 0.2.0+alpha.8.2 patch for 1.19 has been released:
- Enables
ioSystem.replaceImpl
by default - Fixes thread count calculation for threaded worldgen
0.2.0+alpha.7
C2ME 0.2.0+alpha.7 for Minecraft 1.18.2 is released
This release improves overall performance and stability and fixes some bugs.
Changelog:
- Optimizes entity filtering in no-tick chunks to reduce lag when tons of entities in no-tick chunks
- Disables perlin noise vectorization with Vector API due to performance issues in JDK17
- Optimizes perlin noise with 25% speedup over vanilla
- Optimizes aquifer without changing vanilla behavior
- Rewrites chunk IO system focused on overall throughput
(can be enabled manually withioSystem.replaceImpl
in config) - Adds parallel scheduling to further reduce server thread load
(can be enabled manually withasyncScheduling.enabled
in config) - Re-enabled noise caching in The End dimension when lithium is present
- Allows changing auto-save behavior
Now defaults to saving chunks after ticking with periodical saving
You can still use the original vanilla behavior or revert to pre-1.18 behaviors in config - Fixes high cpu usage on scheduler thread when idle
- Fixes large lag in singleplayer creating world screen.
- Fixes compatibility issues with lithium 0.7.8 and later
- Fixes some crashes with certain datapacks and mods
Notes:
- The calculation of default parallelism has been changed to reduce stuttering in singleplayer worlds.
This means that some features may get disabled if you are on a relatively lower-end devices.
You can always re-enable them manually in config.
Full Changelog: 0.2.0+alpha.6...0.2.0+alpha.7
0.2.0+alpha.6
C2ME 0.2.0+alpha.6 for Minecraft 1.18.1 is released
This release improves overall performance and stability and fixes some bugs.
Changelog:
- General worldgen optimizations and allocation reductions
- Adds experimental async scheduling (turned off by default)
- Raise default max render distance to 128
- Some fixes related to no-tick view distance
- Don't send chunks twice with no-tick (configurable)
- Turns on
reducedLockRadius
by default - Adds priority system for worldgen
- Now breaks optifabric
- Adds limit for chunk data cache in IO workers to prevent using too much heap memory
- Allow disabling mid-tick chunk tasks
- Safety and stability improvements
- Attempt to fix bad config values or return them to default by @duplexsystem in #94
- Hide
useGlobalBiomeCache
from config
Full Changelog: 0.2.0+alpha.5...0.2.0+alpha.6
EDIT: Looks like something is wrong with the lithium compatibility. Please add EDIT: Fixed in 0.2.0+alpha.6.1mixin.world.player_chunk_tick=false
to lithium config to workaround this issue.
0.2.0+alpha.5
This release improves performance significantly and fixes several issues in alpha4.
Changelog:
- Fixes a memleak caused by vanilla not correctly running scheduling with lock or keeping scheduling single-threaded when paired with fabric-api.
- Fixes bobby incompatibility with default config.
- Fixes a config issue where
vanillaWorldGenOptimizations
is getting overwitten bygeneralOptimizations
every time the server launches, causing brokenvanillaWorldGenOptimizations
section. - Fixes incompatibility with FabricAntiXray.
- Allows changing no-tick view distance ingame:
For 1.17.1, this will allow the render distance slider to correctly modify no-tick view distance.
For 1.18 snapshots, this will:- replace the render distance and
view-distance
in server properties to c2me no-tick impl - replace the simulation distance slider and
simulation-distance
in server.properties to actual ticking distance - modify vanilla behavior where it will stop ticking everything outside of ticking chunks instead of only stop ticking entities
- be significantly faster than mojang's implementation
- replace the render distance and
- Makes
allowThreadedFeatures
to be enabled by default. - Optimizes chunk scheduling to reduce allocation rates significantly.
- Drops metrics.
- Optimizes perlin noise by vectorizing it using Java 16 Vector API (enable with jvm flag
--add-modules jdk.incubator.vector
)
Currently it will throw a warning when it cannot find the vector api module.
Note that the warning is only for troubleshooting issues when the optimization cannot be loaded properly and completely harmless to your server.
Notes:
- A full list of tested compatible mods can be found in README.md (2 added in this release)
Please report all incompatibilities to github issues. - No-tick view distance impl is enabled by default on 1.18 in this release.
reduceLockRadius
is still turned off by default. It is planned to be enabled by default with 1/10 sampling in0.2.0+alpha.6
useGlobalBiomeCache
is still turned off by default. It is planned to be enabled by default in future versions in 1.17.useGlobalBiomeCache
is experimental in 1.18 snapshots.