Commit graph

26 commits

Author SHA1 Message Date
Serkyo 89887c5b98 feat(renderer): expose per-frame draw statistics 2026-07-30 23:31:18 +02:00
Serkyo 324d1b144d feat(renderer): compose render modes from raster passes 2026-07-27 21:36:14 +02:00
Serkyo 5f4b30a4dc feat(renderer): add selectable debug render modes 2026-07-27 21:10:26 +02:00
Serkyo d8d6635f37 refactor(renderer): rename mesh module to vertex 2026-07-23 02:49:14 +02:00
Serkyo a20d98a107 feat(renderer): cull chunk meshes outside the view frustum 2026-07-22 05:17:41 +02:00
Serkyo fd6ec10ce5 fix(renderer): recreate swapchain on resize and out-of-date present 2026-07-16 02:54:23 +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 092d546c52 docs(workspace): standardize function doc sections and enforce # Errors 2026-07-13 21:09:27 +02:00
Serkyo 6b3ae06031 chore(renderer): add reasons to expect attributes 2026-07-13 00:39:49 +02:00
Serkyo e940cf560e chore(workspace): centralize shared deps and unify glam to 0.33 2026-07-08 15:05:55 +02:00
Serkyo 8045c3cae3 refactor(workspace): use #[expect] over #[allow] for lint suppressions 2026-07-07 01:28:56 +02:00
Serkyo ea6fbf1624 feat(client): add free-fly camera with wasd and mouse-look 2026-07-06 00:20:57 +02:00
Serkyo cd7ab3a3c5 chore(workspace): add SPDX identifiers to source files 2026-05-17 21:06:39 +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 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 203cc2a671 feat(renderer): add dynamic mesh updates via buffer reallocation 2026-05-16 19:04:20 +02:00
Serkyo 38077c980d feat(renderer): implement depth testing and indexed 3d rendering 2026-05-12 23:00:30 +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 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