▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Ferrite
Ferrite

Ferrite

Ferrite — A Rust-powered Minecraft mod improving chunk generation performance, with 7× faster terrain compute proven on equivalent workloads. Low-end hardware testing needed to ship the full optimization.

Оцените первым
6.2K
35
Все версииFerrite 0.6.6-alpha+26.1.2

Ferrite 0.6.6-alpha+26.1.2

Alpha13.07.2026

Список изменений

[0.6.6-alpha] - 2026-07-13

Fixed

  • Five latent redstone defects found in a full review of the AC port. An exception mid-cascade left stale graph state that poisoned every later cascade in that world; removed wires reached the Rust BFS kernel as phantom power-15 sources through a sign-truncation bug (this path is default-on); an out-of-range power value could abort the whole JVM via a release-mode panic across the JNI boundary (now hard-clamped on both sides); the parity oracle produced guaranteed false positives on experimental-redstone worlds (now skipped); and a single exception permanently disabled the oracle and phase counters through stuck thread-locals (they self-heal every tick now). None of these changed measured performance; all validators stay bit-exact.

Changed

  • AC redstone lag machine restesting The vanilla path held 1.4-1.8 TPS (up to 716 ms per tick); enabling /ferrite redstone ac on mid-choke recovered to a flat 20.00 TPS in about 40 seconds, ~13x fewer cascades and ~6x cheaper gate updates on the same build. README benchmark section carries the numbers.
  • Chunkforce predicts flight direction. With /ferrite chunkforce on, the force-gen ring center now leads a moving player by up to 12 chunks along their velocity instead of spending half the budget on terrain behind them. Flight test on 26.1.2 (view distance 16, simulation distance 12): 24,581 chunks forced in ~2.5 minutes at ~160 chunks/s with TPS 20.00 held; the generation front stays out of sight at top creative-fly speed. Stationary players keep the old radial behavior.
  • Pregen inflight cap raised 50 to 200 (+25% throughput). Four 3721-chunk virgin-terrain runs measured cap 50 at 90-96 chunks/s and cap 200 at 114-118 chunks/s; 400 added nothing. Tunable at runtime with /ferrite pregen inflight <n>.
  • Walkability cache: fill strategy fixed, then shelved after A/B. Session 5's pre-fill box thrashed the 512-slot cache (hit rate 1-17%, ~4400 snapshots per 5 s). Session 6 replaced it with a lazy snapshot on first miss, restricted to sections the PathNavigationRegion actually backs, and grew the kind cache to 2-way set-associative (2048 sets x 2 ways, LRU). That fixed the cache itself: hit rate 71-94%, snapshots 24-57 per 5 s. An A/B with 294 chasing zombies then hit 84-87% and still moved nav tick cost at most ~5%, inside noise, because vanilla already fronts getPathTypeFromState with a per-position PathTypeCache and our intercept only ever serves vanilla's misses. Shelved: code stays in tree, default off, post-mortem in JOURNEY. Opt in with -Dferrite.nav.cache=true, or -Pferrite.navCache=true / -Pferrite.navParity=true on runClient.

Added

  • [chunk-save] monitor. Times SerializableChunkData.copyOf (server thread) and write (background encode) separately, one line per 5 s window when saves happened. First measurements settled the chunk-save port candidate: the palette bit-pack already runs on the background executor in 26.1.x, and the tick thread pays only 0.3-0.5 ms/tick of copyOf under sustained flight. Candidate closed; monitor stays.

Fixed

  • Workspace is clippy-clean. All ~120 warnings cleared across the four crates: bind! codegen now emits From impls without the Copy .clone(), the api layer's Into impls flipped to From, slice params replace &Vec, and dead verbatim-port items carry explicit allows. Style lints that fight the vanilla ports (index loops, negated float comparisons that keep vanilla NaN semantics, JNI argument counts) are allowed at crate level in rust-mod with a justification comment. Workspace resolver pinned to 2; the macros crate declares proc-macro = true instead of crate-type.
  • Unsafe JNI buffer helpers hardened. get_i32_slice_mut (surface_jni.rs) and get_byte_slice_mut (redstone_queues_jni.rs) returned &mut [_] from a shared &JByteBuffer, so nothing stopped a caller from holding two aliased mutable slices over one direct buffer. Never a live bug (each is called once per JNI call), but the invariant was unwritten. Both are now unsafe fn with a # Safety contract (no-alias, capacity, alignment) and SAFETY notes at each call site. The two clippy::mut_from_ref errors are gone, and build.yml now runs clippy on the linux job so deny-level lints fail CI.

Файлы

ferrite-0.6.6-alpha+26.1.2.jar(2.43 MiB)
Основной
Скачать

Метаданные

Канал релиза

Alpha

Номер версии

0.6.6-alpha+26.1.2

Загрузчики

Fabric

Версии игры

26.1.1–26.1.2

Загрузок

1.4K

Дата публикации

13.07.2026

Загрузил

ID версии

Главная