Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
Renderer

The Vulkan Schnee renderer targets desktop VR and desktop mirror output. It splits frame orchestration between CPU-side renderer objects and GPU-side compute and mesh-shader stages.

Architecture

The renderer is divided into CPU-side orchestration and GPU-side execution:

CPU-Side Components

ApplicationContext (OpenXR Integration)

ApplicationContext owns VR integration through OpenXR:

  • Runtime Management: Initializes OpenXR runtime connections
  • Session Lifecycle: Handles VR session creation, frame timing, and cleanup
  • Input Abstraction: Provides input handling across VR platforms
  • Compositor Coordination: Submits frames to the VR compositor

Renderer (Resource Management)

The Renderer class owns all GPU resources that persist across frames:

  • Pipeline Management: Creates and manages graphics and compute pipelines
  • Buffer Allocation: Handles unified buffer creation and memory management
  • Descriptor Management: Sets up shader resource bindings and layouts
  • Command Recording: Orchestrates the rendering command buffer sequence

RenderProcess (Per-Frame State)

Each RenderProcess manages frame-specific rendering state:

  • Synchronization: Handles frame timing and GPU synchronization primitives
  • Dynamic Updates: Manages per-frame buffer updates and resource binding
  • Swapchain Management: Coordinates image acquisition and presentation

MirrorView (Desktop Display)

The mirror view provides desktop visualization of VR content:

  • Window Management: Creates and manages desktop display window
  • Image Sharing: Reuses VR rendering results for desktop display
  • Debugging Support: Enables inspection of VR rendering without headset

GPU-Side Pipeline

The GPU pipeline is documented in VR Renderer. It uses:

  • Unified Buffer Architecture: All scene geometry in shared GPU buffers
  • GPU-Driven Rendering: Visibility culling and command generation on GPU
  • Mesh Shading: Modern graphics pipeline using mesh shaders for efficient geometry processing
  • Compute-Based Culling: Multi-stage visibility reduction before drawing

Integration Points

Renderer components share frame data through explicit ownership boundaries:

  • Resource Sharing: Buffers and pipelines shared between VR and mirror rendering
  • Synchronization: Timeline semaphores coordinate GPU work across components
  • Memory Management: Unified memory allocation strategy across all renderer components

The same render results feed the headset swapchain and optional desktop mirror output.