Skip to content

Development Overview

ExodusCoder9 edited this page Jun 13, 2026 · 1 revision

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.

Clone this wiki locally