Commit graph

206 commits

Author SHA1 Message Date
Serkyo 0e8ba02038 feat(renderer): expose physical device information 2026-07-31 00:38:02 +02:00
Serkyo 89887c5b98 feat(renderer): expose per-frame draw statistics 2026-07-30 23:31:18 +02:00
Serkyo c33643027c fix(server): sleep the remainder of the tick period
The simulation loop slept a flat 50 ms after the tick body, so the real period was the tick's work plus 50 ms and drifted with load; the advertised 20 Hz was never the rate actually achieved. The loop now timestamps the top of the tick and sleeps only the unused remainder of the budget, reporting an overrun instead of sleeping when the body exceeds it.
2026-07-30 22:29:43 +02:00
Serkyo a2b20f0ee9
Merge pull request #7 from Cryoforge-Nexus/feat/meshing-and-culling
feat(workspace): meshing, culling, and debug render modes
2026-07-30 21:58:56 +02:00
Serkyo 95c798954c perf(server): generate chunk baselines outside the cache lock 2026-07-28 00:22:37 +02:00
Serkyo 1d041e035e feat(client): add a solo modifier for debug view chords 2026-07-27 21:36:14 +02:00
Serkyo 324d1b144d feat(renderer): compose render modes from raster passes 2026-07-27 21:36:14 +02:00
Serkyo 8af6ae9661 feat(assets): size and tint debug raster passes in the vertex shader 2026-07-27 21:36:14 +02:00
Serkyo 5c10aefee9 feat(client): add debug controls for toggling render modes 2026-07-27 21:14:22 +02:00
Serkyo 5f4b30a4dc feat(renderer): add selectable debug render modes 2026-07-27 21:10:26 +02:00
Serkyo a5af42f119 feat(client): mesh chunks on a background worker pool 2026-07-26 20:19:59 +02:00
Serkyo dae0bafcd3 refactor(client): abstract chunk mesh upload behind a MeshSink trait 2026-07-26 20:19:27 +02:00
Serkyo 2abe08bf57 chore(client): add crossbeam-channel dependency 2026-07-26 20:14:38 +02:00
Serkyo 5e1b4de98b test(client): relocate chunk streaming tests into src/tests 2026-07-23 03:45:21 +02:00
Serkyo 79543002b1 feat(client): retain chunk voxels and re-mesh neighbours on load and drop 2026-07-23 03:40:16 +02:00
Serkyo 3b3a4a107b feat(renderer): cull voxel faces against neighbouring chunks 2026-07-23 03:40:09 +02:00
Serkyo d8d6635f37 refactor(renderer): rename mesh module to vertex 2026-07-23 02:49:14 +02:00
Serkyo d2f4beb5af refactor(client): mesh chunks via the renderer and drop the client copy 2026-07-23 02:49:14 +02:00
Serkyo edc72a0f6f perf(renderer): merge coplanar voxel faces with a greedy mesher 2026-07-23 02:49:14 +02:00
Serkyo 748e783f1e test(renderer): relocate frustum tests into src/tests 2026-07-23 02:11:50 +02:00
Serkyo bb4e591a09 fix(net): split chunk stream reader and writer to avoid frame desync 2026-07-22 14:45:41 +02:00
Serkyo 20d36624c7 fix(net): enable QUIC keep-alive to survive backpressure stalls 2026-07-22 05:27:01 +02:00
Serkyo f465cfeeaf fix(net): bound chunk delivery channel to apply backpressure 2026-07-22 05:27:01 +02:00
Serkyo a20d98a107 feat(renderer): cull chunk meshes outside the view frustum 2026-07-22 05:17:41 +02:00
Serkyo e5d39be400 ci(workspace): guard against raw blobs that should be git lfs 2026-07-22 04:26:35 +02:00
Serkyo 57d8729470 chore(assets): store compiled shaders via git lfs 2026-07-22 04:23:46 +02:00
Serkyo e7c7dc5aea
Merge pull request #6 from Cryoforge-Nexus/feat/chunk-streaming-slice
feat(client): stream and render server-authoritative chunks end-to-end
2026-07-22 04:01:51 +02:00
Serkyo d01f45ec18 chore(client): modified the radius of chunk generated from 4 to 8 2026-07-22 03:29:40 +02:00
Serkyo 653fd24e15 docs(server): document client-server chunk delivery transport 2026-07-22 00:17:18 +02:00
Serkyo 0a2049bbc9 feat(client): render server-streamed chunks around the camera 2026-07-22 00:17:18 +02:00
Serkyo e00ceecab6 feat(net): expose the client chunk stream to the winit loop 2026-07-22 00:06:46 +02:00
Serkyo 9dc7bba3a9 feat(server): stream chunks to clients for their subscribed region 2026-07-22 00:01:57 +02:00
Serkyo 40b97d095e feat(net): carry chunk subscribe and delivery on the chunk stream 2026-07-21 23:53:15 +02:00
Serkyo d12f7ac034 chore(shared): reformat protocol re-exports for rustfmt 1.97 2026-07-21 22:18:58 +02:00
Serkyo 25b088ce0b refactor(server): move region files to 3D (rx, ry, rz) grid 2026-07-21 22:13:58 +02:00
Serkyo b3f10d8f12 feat(shared): add chunk subscribe and delivery message types 2026-07-21 21:57:55 +02:00
Serkyo ce79449a6c refactor(shared): split protocol into stub and control submodule 2026-07-21 21:57:38 +02:00
Serkyo 8cfee29b53 fix(renderer): silence release-build warnings from debug-only validation 2026-07-16 03:01:02 +02:00
Serkyo fd6ec10ce5 fix(renderer): recreate swapchain on resize and out-of-date present 2026-07-16 02:54:23 +02:00
Serkyo 2bf140cf02 feat(client): stream local chunk meshes around camera 2026-07-16 02:24:27 +02:00
Serkyo 60fe2fc294 feat(client): upload origin chunk via renderer insert_mesh 2026-07-16 00:05:30 +02:00
Serkyo 5efe937168 feat(assets): apply per-chunk world offset in voxel vertex shader 2026-07-16 00:05:30 +02:00
Serkyo dd8a969828 feat(renderer): render keyed collection of chunk meshes with per-chunk offset 2026-07-16 00:05:30 +02:00
Serkyo 2ca9ae801d
Merge pull request #5 from Cryoforge-Nexus/feat/networking-foundation
feat(net): QUIC transport foundation — endpoints, codec, and handshake
2026-07-15 18:52:24 +02:00
Serkyo bb33247f96 chore(net): modified doc comments 2026-07-15 18:48:21 +02:00
Serkyo 7620c3b54e feat(client): connect to server and complete handshake 2026-07-14 01:38:58 +02:00
Serkyo e941415836 feat(server): accept QUIC client connections 2026-07-14 01:38:58 +02:00
Serkyo e9d6854e7a feat(net): add threaded tokio runtime bridge for connections 2026-07-14 01:38:50 +02:00
Serkyo 30a45f1c41 docs(net): trim handshake pack-validation TODO comment 2026-07-14 01:18:53 +02:00
Serkyo 7b3908dd7f test(workspace): relocate all tests into per-crate src/tests via #[path] 2026-07-14 00:42:42 +02:00