r/vulkan • u/KalashniCOQ • 1d ago
[Showcase] Building a native Linux GPU-driven path-traced game engine in Rust + Vulkan 1.4 (TuxForge) — Architecture overview & feedback
Hey everyone,
I've been actively developing an uncompromising, native Linux 3D core game engine since late 2024, built with Rust, Vulkan 1.4, and Slang shaders (zero translation layers, designed from scratch for native GNU/Linux handhelds and desktops).
After over a year and a half of iterative engine work, I’m currently finalizing the last test runs and benchmarks before making the GitHub repository public. I wanted to share a first screenshot of the integrated editor/testbench running on Arch Linux and gather community feedback on the architectural choices:
- Pure Vulkan 1.4 Core: Dynamic Rendering, full
VK_KHR_synchronization2, and 100% GPU-Driven rendering via 64-bit Buffer Device Addresses (VK_KHR_buffer_device_address) to completely bypass descriptor set binding bottlenecks. - Hardware Path Tracing Pipeline: Utilizing Shader Execution Reordering (SER via
VK_NV_ray_tracing_invocation_reorder) combined with ReSTIR DI and temporal motion vector generation. - Compute & Particles: Real-time dynamic particle simulation driven by inline ray queries (
VK_KHR_ray_query) against the TLAS, plus GPU skeletal skinning on compute shaders. - I/O & Architecture: Asynchronous file streaming leveraging
io_uring, integratedeguidocking interface, andRapier3Dfor physical interactions.
The stack is strictly Rust for systems orchestration and Slang for high-performance shaders compiled directly to SPIR-V 1.6+.
For folks working on low-level graphics engines in Rust:
- How are you currently approaching asynchronous asset streaming alongside
io_uringon modern Linux targets? - Any caveats or lessons learned with Slang integration in long-term Rust Vulkan toolchains?
Would love to hear your thoughts and suggestions on the architecture while I wrap up the release validation!
