ashgamedevgame-engineluamluamoddingmultiplayerprocedural-generationquicrpgrustsurvival-gamevoxelvoxel-enginevulkan
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. |
||
|---|---|---|
| .agents/rules | ||
| .github | ||
| assets | ||
| crates | ||
| mods/example_mod | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| LICENSE.md | ||
| rustfmt.toml | ||
| selene.toml | ||
| stylua.toml | ||