Skip to main content

ADR-003: Custom DirectX 12 Renderer

Status

Accepted

Context

The VR overlay system requires a high-performance renderer that can:

  • Share textures efficiently with OpenVR
  • Minimize CPU overhead
  • Support overlay-specific optimizations
  • Integrate tightly with our IPC system

Decision

We will implement a custom DirectX 12 renderer instead of using wgpu or other abstraction layers.

Consequences

Positive

  • Direct control over resource management
  • Optimal texture sharing with OpenVR
  • Minimal abstraction overhead
  • Custom command buffer recording strategies
  • Platform-specific optimizations

Negative

  • Windows-only (acceptable for VR use case)
  • More implementation effort
  • Need to maintain low-level code
  • Requires DirectX 12 expertise

Implementation

  • Custom command allocator pooling
  • Direct texture interop with OpenVR
  • Specialized overlay rendering pipeline
  • See DirectX 12 Implementation