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