Commit Graph

10 Commits

Author SHA1 Message Date
Ludovic Marie c74948d24c Uploads: main's path again when no upload budget is set
The soft 4 ms yield per frame (also with Unlimited budgets) made a saved
RD32 world reach full render distance about 1 s later on the Mac mini
(streaming time after launch, 4 alternating pairs: main 1.9 s mean, yield
2.8 s; t100 from a first batch of 3 pairs: 6.1 s vs 7.1 s) without better
loading frame times (max 133-210 ms vs 31-150 ms). Without a budget every
finished mesh uploads at once again, as on main. The budgeted path keeps
this branch's fixes: only loaded chunks' sections wait, and sizes count the
24-byte terrain vertex.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 01:45:38 +02:00
Cosmic fde95ff20e Build distant terrain from sparse seed samples and layered voxel columns 2026-10-18 05:30:56 -04:00
Cosmic 594929b795 Validate LOD loading, shader depth and current terrain draw paths 2026-10-17 18:13:20 -04:00
Cosmic 9ce739796e Merge remote-tracking branch 'origin/main' into feat/terrain-lod
# Conflicts:
#	crates/horizon-client/src/gfx.rs
#	crates/horizon-client/src/graphics.rs
2026-10-17 18:06:36 -04:00
Cosmic bae7975757 Add bounded hierarchical surface terrain LODs for distant views (#718) 2026-10-17 18:05:39 -04:00
Ludovic Marie f537c84ebb VSync on waits for the display whatever the present mode (#684)
With an explicit Present Mode (Mailbox, Immediate), the VSync option did
nothing: the setting replaced vanilla's choice even with VSync on, so a
window kept running uncapped. Vanilla's VSync means Fifo, in a window and in
fullscreen alike. Now VSync on always presents with Fifo, and the Present
Mode setting chooses only while VSync is off (Auto keeps vanilla's choice:
Immediate, else Mailbox, else Fifo). The choice is one tested function,
window::chosen_present_mode.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 15:04:00 +02:00
Ludovic Marie 0229615560 Battery mode: an opt-in frame cap and fewer worker threads
A Horizon graphics setting (Performance, off by default, batteryMode in
horizon-graphics.txt): at most 60 frames per second in a world, 30 in menus
without a world or behind other windows, and half the automatic worker
threads. It only changes when frames are drawn; ticks and what frames show
are untouched.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 02:24:57 +02:00
Ludovic Marie b6ee20d0e8 Graphics benchmark results: baseline against 9006566b on the RTX 4080 and lavapipe
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 17:50:18 +02:00
Ludovic Marie 9006566bbd Graphics docs and screenshots for the Video section of the Horizon options
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 17:21:40 +02:00
Ludovic Marie 7f1e197428 Section arena in pages; graphics docs and benchmark comparison
At render distance 32 the single section arena grew past the 4 GiB buffer
limit and the renderer panicked. Sections now live in pages of at most
256 MiB (or the device's buffer limit); draws keep their order and bind each
page once per run of consecutive draws in it, so translucent sections stay
back to front. docs/graphics.md describes the settings, the benchmark and
what changed; graphics_bench.py --compare prints a before/after table and
keeps each game's log.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 17:10:07 +02:00