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
Serkyo
1c3eb69cbf
fix(renderer): align synchronization with working save and force FIFO
2026-05-09 21:49:40 +02:00
Serkyo
3997fa5fd9
refactor(renderer): modularize crate and enable vulkan 1.3 features
2026-05-09 21:43:30 +02:00
Serkyo
1805ae6aa6
feat(renderer): implement robust synchronized render loop
2026-05-09 21:33:57 +02:00
Serkyo
e005bf1c75
feat(renderer): create synchronization primitives
2026-05-09 21:03:34 +02:00
Serkyo
d0fa203743
feat(renderer): create command pool and buffer
2026-05-09 17:35:09 +02:00
Serkyo
65b43651bb
feat(renderer): create image views for swapchain images
2026-05-09 17:29:47 +02:00
Serkyo
636c44b29f
fix(renderer): handle u32::MAX swapchain extent
...
Fixed a crash where the renderer would attempt to create a swapchain with u32::MAX dimensions when the OS didn't provide a preferred extent. Updated Renderer::new to accept window dimensions and use them as a fallback. Also renamed InstanceCreateFailed to VulkanError for better generality.
2026-04-30 15:17:38 +02:00
Serkyo
76450da41f
feat(renderer): finalize swapchain initialization
...
Negotiated swapchain settings (format, present mode, extent), created the swapchain and its images, and ensured correct destruction order. Added comprehensive documentation for all new fields and methods.
2026-04-30 15:15:07 +02:00