Commit graph

70 commits

Author SHA1 Message Date
Serkyo e0dfcde529 feat(server): add chunk loading pipeline 2026-07-10 13:01:21 +02:00
Serkyo fa99b6dcea docs(server): note whole-file rewrite deviation from save spec 2026-07-10 01:15:44 +02:00
Serkyo 085f496898 chore(workspace): removed leftover mod.rs files 2026-07-10 00:26:59 +02:00
Serkyo 54d2f522cc refactor(server): migrate mod.rs modules to path-style files 2026-07-09 19:47:00 +02:00
Serkyo b6687dc82b refactor(shared): migrate mod.rs modules to path-style files 2026-07-09 19:47:00 +02:00
Serkyo 1db124e63b feat(server): add atomic region-file durability layer 2026-07-09 15:14:24 +02:00
Serkyo a4f2bb32bc style(shared): apply rustfmt to save module 2026-07-09 15:00:28 +02:00
Serkyo 8c8c70e990 fix(shared): correct SYNR framing order and widen worldgen version 2026-07-09 14:59:18 +02:00
Serkyo de6f7dd722 feat(shared): add SYNR region index framing 2026-07-09 00:20:34 +02:00
Serkyo b676755633 feat(shared): add SYNC per-chunk record encoding 2026-07-08 16:21:54 +02:00
Serkyo 7ce3bb8577 refactor(server): propagate config-load errors via anyhow 2026-07-08 15:14:45 +02:00
Serkyo e940cf560e chore(workspace): centralize shared deps and unify glam to 0.33 2026-07-08 15:05:55 +02:00
Serkyo 9a3224d102 feat(shared): add sparse baseline-relative ChunkData 2026-07-08 14:16:02 +02:00
Serkyo b196dc3152 refactor(shared): split world module into per-concept files 2026-07-08 02:37:19 +02:00
Serkyo 3a3ecc13e2 feat(shared): add palette-compressed chunk representation 2026-07-08 02:16:18 +02:00
Serkyo 12390d3008 refactor(server): drop unused synchronous get_chunk path 2026-07-07 22:47:07 +02:00
Serkyo ca39d36a81 feat(server): gate startup on initial region streaming 2026-07-07 22:29:50 +02:00
Serkyo 19fdec44d1 test(server): cover async reconcile convergence and eviction race 2026-07-07 22:27:00 +02:00
Serkyo 9001cc6f98 feat(server): generate chunks on worker pool 2026-07-07 22:21:32 +02:00
Serkyo 44511cde75 feat(server): stream chunks around a player entity via ECS 2026-07-07 18:53:24 +02:00
Serkyo 9b4cfccd43 refactor(server): pass EntityPos to load_around 2026-07-07 18:14:52 +02:00
Serkyo bf55c91e91 feat(shared): derive serde on EntityPos 2026-07-07 18:14:52 +02:00
Serkyo d0ddc31801 feat(shared): add EntityPos split-coordinate entity position 2026-07-07 18:07:15 +02:00
Serkyo 3b802a542f perf(server): parallelize chunk generation in load_around 2026-07-07 17:17:54 +02:00
Serkyo 6bd8e5d3ba feat(server): generate a cylinder of chunks around a center point 2026-07-07 01:47:46 +02:00
Serkyo 8045c3cae3 refactor(workspace): use #[expect] over #[allow] for lint suppressions 2026-07-07 01:28:56 +02:00
Serkyo d3c75a4454 feat(shared): add ChunkPos::from_world world-to-chunk conversion 2026-07-07 01:17:35 +02:00
Serkyo ea6fbf1624 feat(client): add free-fly camera with wasd and mouse-look 2026-07-06 00:20:57 +02:00
Serkyo 102c75a514 refactor(workspace): rename project codename from Catalyst to Synvael 2026-06-27 22:57:08 +02:00
Serkyo cd7ab3a3c5 chore(workspace): add SPDX identifiers to source files 2026-05-17 21:06:39 +02:00
Serkyo de17b143db chore(workspace): declare license metadata in Cargo.toml 2026-05-17 21:06:13 +02:00
Serkyo 928f0103a4 docs(renderer): collapse multi-line comments and note construction leak 2026-05-16 20:30:01 +02:00
Serkyo f04912df70 fix(renderer): plug shader-module and stale-handle leaks
create_graphics_pipeline now destroys its shader modules on the error
path as well, and update_mesh nulls the buffer handles after destroying
them so a later Drop or retry cannot redestroy freed buffers.
2026-05-16 19:43:16 +02:00
Serkyo 4130ebf5f9 fix(client): drop renderer before window on shutdown
Reorder the fields of App so renderer is declared before window. Rust
drops struct fields in declaration order, and the renderer owns a
Vulkan surface tied to the window's display-server handle; tearing the
window down first leaves the surface dangling when Renderer::drop runs.
2026-05-16 19:28:54 +02:00
Serkyo 19f79080b1 fix(renderer): correct resource teardown ordering in Drop
Replace ptr::read-based field consumption with Option<T> + take() for
sync primitives, GPU allocations, and the allocator itself. The prior
pattern left bitwise-duplicated values in the original fields, so Rust's
automatic field drop after Drop::drop returned freed the same heap
buffers (Vec backings inside SyncPrimitives) and Allocations twice.

The allocator is now explicitly dropped before destroy_device so its
own Drop impl, which releases vk::DeviceMemory blocks, runs while the
logical device is still valid. Swapchain image views are also now
destroyed before the swapchain, as required by the Vulkan spec.
2026-05-16 19:28:47 +02:00
Serkyo 5659469e17 chore(workspace): fix formatting and clippy warnings 2026-05-16 19:05:53 +02:00
Serkyo 61a7fb0ed5 feat(client): implement face culling and voxel rendering 2026-05-16 19:04:27 +02:00
Serkyo 203cc2a671 feat(renderer): add dynamic mesh updates via buffer reallocation 2026-05-16 19:04:20 +02:00
Serkyo ab01c8a033 feat(server): implement authoritative chunk tracking 2026-05-16 19:04:08 +02:00
Serkyo 4724e91281 feat(shared): define base voxel world types and procedural generation 2026-05-16 19:03:29 +02:00
Serkyo 38077c980d feat(renderer): implement depth testing and indexed 3d rendering 2026-05-12 23:00:30 +02:00
Serkyo 32ef9ca4c6 chore(workspace): finalize clippy requirements and resolve all warnings 2026-05-12 19:03:39 +02:00
Serkyo d30834e14f chore(workspace): run cargo fmt 2026-05-12 18:53:56 +02:00
Serkyo 34f1a9d989 chore(workspace): enforce missing_docs and resolve all linting violations 2026-05-12 18:52:30 +02:00
Serkyo fd5d5e4e4b chore(workspace): configure linters and format codebase 2026-05-12 11:43:17 +02:00
Serkyo e6f8414817 feat(renderer): implement vertex buffer allocation and memory mapping 2026-05-11 00:04:42 +02:00
Serkyo 8af89292b6 feat(renderer): integrate graphics pipeline and initialize gpu allocator with centralized frames in flight 2026-05-10 22:56:14 +02:00
Serkyo c7fc5de690 docs(renderer): add detailed docstrings for all struct fields and logic 2026-05-10 22:16:53 +02:00
Serkyo 17d06a0423 feat(renderer): add pipeline module for graphics pipeline creation 2026-05-10 22:02:43 +02:00
Serkyo 560b1e4d0f feat(renderer): add mesh module with Vertex struct 2026-05-10 22:02:09 +02:00