-
Notifications
You must be signed in to change notification settings - Fork 0
Development Overview
For developers looking to contribute, here is a high-level look at the Xeno architecture.
Xeno uses a GPU-driven approach wherever possible. The goal is to minimize CPU-to-GPU synchronization points.
Core Architecture Memory Allocation: Handled via Vulkan Memory Allocator (VMA). We use deferred freeing to prevent memory fragmentation and reduce render pass breaks during chunk generation.
Command Submission: We utilize indirect drawing. Instead of the CPU looping through chunks and issuing draw calls, we write draw parameters to a buffer and issue a single indirect draw call per render pass.
Buffers: Vertex, index, and uniform buffers are double-buffered to allow the CPU to write to the next frame while the GPU renders the current one.
Shaders: We use shaderc to compile custom compute shaders and SPIR-V binaries.
Current Bounties / Work in Progress If you want to contribute, these are the active areas of development:
Greedy Meshing: We are working on an algorithm to merge coplanar block faces to reduce vertex count.
Compute Shader Culling: Moving our 2-level octree frustum culling entirely to the GPU via compute shaders.
Normal Packing: Caching packed normals for static model poses to free up CPU cycles during entity rendering.