# Java performance packs (no longer developed) Before the Rust rewrite, Horizon was a lab for Minecraft Java client performance: pinned Fabric performance packs, distant terrain, an original frame and tick recorder, and client and server starter downloads. This track is **no longer developed**. No release downloads are published; build the packs and starters locally with `python3 tools/build_release.py` (see [Build and run](#build-and-run)). This page keeps its documentation. ## Java packs: Mac starter (out of scope) Build **horizon-mac-starter-0.21.0.zip** with `python3 tools/build_release.py` (it lands in `dist/`), extract it and open `Mac-Start.command`. It verifies and installs official universal Prism Launcher in `~/Applications` if needed, then opens the balanced pack import. Sign into Microsoft **inside Prism yourself**. This project needs no credentials. Use native **Java 25 ARM64**, maximum heap **6144 MiB**, minimum **512 MiB** on a 16 GB M2 Pro Mac. Prism can download Java automatically. Start at 1280×800 or 1920×1200; full Retina resolution is a larger GPU workload. [START-HERE.txt](../packs/START-HERE.txt) has details. The same `.mrpack` files import into Prism on Windows and Linux. Core and balanced passed macOS title and demo-world rendering probes on the hosted ARM64 software renderer, including readback, saves and clean exits. Physical M2 GPU performance and macOS 27 were never tested. | Profile | Full-detail chunks | Distant LOD radius | Suggested maximum heap | | --- | ---: | ---: | ---: | | baseline | 12 | none | 6144 MiB | | core-performance | 12 | none | 6144 MiB | | m2-balanced | 12 | 128 | 6144 MiB | | adaptive (experiment) | 12 | 128 | 6144 MiB | | worker-pacing (experiment) | 12 | 128 | 6144 MiB | | adaptive-pacing (experiment) | 12 | 128 | 6144 MiB | | queue-wait (experimental) | 12 | 128 | 6144 MiB | | adaptive-queue (experimental) | 12 | 128 | 6144 MiB | | dispatch-retry (experimental) | 12 | 128 | 6144 MiB | | tick-dedup (experimental) | 12 | 128 | 6144 MiB | | culling-empty (experimental) | 12 | 128 | 6144 MiB | | quad-reuse (experimental) | 12 | 128 | 6144 MiB | | terrain-position (experimental) | 12 | 128 | 6144 MiB | | culling-rays (experimental) | 12 | 128 | 6144 MiB | | foreground-first (combined experiment) | 12 | 128 | 6144 MiB | | foreground-vulkan (combined experiment) | 12 | 128 | 6144 MiB | | low-memory | 8 | none | 3072 MiB | | far-distance | 12 | 256 | 8192 MiB, with sufficient physical RAM | | cinematic | 12 | 128 | 6144 MiB | | vulkan | 12 | 128 | 6144 MiB | Balanced combines [Sodium](https://modrinth.com/mod/sodium), [Lithium](https://modrinth.com/mod/lithium), [FerriteCore](https://modrinth.com/mod/ferrite-core), [ImmediatelyFast](https://modrinth.com/mod/immediatelyfast), [EntityCulling](https://modrinth.com/mod/entityculling), and [Distant Horizons](https://modrinth.com/mod/distanthorizons). Cinematic adds [Iris](https://modrinth.com/mod/iris) and [Complementary Reimagined](https://modrinth.com/shader/complementary-reimagined), initially disabled. Vulkan independently experiments with the game's own backend and fallback, without Iris. Distant LOD is simplified terrain. Nearby blocks retain full detail. Initial generation costs CPU/disk/memory and needs warm-up. DH adjusts clouds, chunk fade and transparency to blend its renderer; assess appearance as well as speed. Shaders cost GPU time and have [Mac-specific limits](https://shaders.properties/current/reference/miscellaneous/macos/). Universal CPU/GPU support and exact vanilla equivalence remain validation goals. Simulation distance stays 12 in every profile; normal 20 TPS rules are retained. For the first comparison at the same view distance, use `baseline` versus `core-performance`: both select 12 full-detail chunks and no distant LOD or shaders. The latter adds only the pinned core performance mods and leaves every original controller disabled. Then test balanced separately for its additional distant terrain. Matching captured settings does not prove pixel-identical rendering. The profiles marked *experiment* each isolate one change to Distant Horizons, EntityCulling or the JVM (adaptive terrain throttling, precise worker pacing, debounce-queue waits, rejected-dispatch retries, empty culling whitelists, culling ray scratch vectors, terrain quad reuse, terrain position arithmetic, tick membership storage, a smaller heap, compact object headers). Each kept the upstream behaviour it replaced and was measured only on Linux software rendering, where none showed a gain large enough to enable by default; balanced keeps them all off. Their write-ups were removed once the Rust rewrite replaced this track; they remain in Git history. Matched software-rendered pairs showed `core-performance` 14–21% faster than `baseline`, and Vulkan about 1.5% more FPS for about 12% more CPU; neither is evidence for a Mac GPU. To try the game's own Vulkan backend on a Mac, see [Vulkan on your Mac](vulkan.md); to compare garbage collectors, see [collector comparisons](collectors.md). ## Measure on your hardware Press **F8** during gameplay to start a 120-second recording, or again to stop early. Rebind in Controls if needed. This also works with restricted chat accounts. Alternatively: `/horizon bench