How thehhmdb/quad-views-foveated-dx12 works
This is an implicit OpenXR API layer that adapts quad-view/foveated-rendering applications for runtimes and headsets that do not natively provide those extensions. The application submits quad-view frames; the layer obtains eye gaze, adjusts inner-view placement, composes the views into stereo output, and forwards work through the active graphics backend. Configuration and compatibility quirks modify that behavior. The README documents these capabilities; sampled excerpts confirm frame timing, injected action handling, gaze-space tracking, swapchain bookkeeping, and D3D12 composition, but do not expose all layer-to-subsystem call sites.
Main entry points: layer.cpp Layer dispatch · compositor.h Compositor interface · eye_tracker.cpp Eye tracker · dispatch.cpp API dispatch
Components 21
OpenXR layer
- Layer dispatch
openxr-api-layer/layer.cpp - API dispatch
openxr-api-layer/framework/dispatch.cpp - Configuration
openxr-api-layer/logic/config.cpp - Frame pipeline
openxr-api-layer/logic/frame_pipeline.cpp
Gaze and views
- Action manager
openxr-api-layer/logic/action_manager.cpp - Eye tracker
openxr-api-layer/logic/eye_tracker.cpp - Gaze spaces
openxr-api-layer/logic/gaze_space_manager.cpp - FOV stabilization
openxr-api-layer/logic/fov_stabilizer.cpp - View resolution
openxr-api-layer/logic/view_resolution.cpp - View geometry
openxr-api-layer/logic/view_math.cpp
Composition
- Swapchain interception
openxr-api-layer/logic/swapchain_interceptor.cpp - Swapchain manager
openxr-api-layer/logic/swapchain_manager.cpp - Layer composer
openxr-api-layer/logic/layer_composer.cpp - Compositor interface
openxr-api-layer/compositor.h - D3D11 compositor
openxr-api-layer/d3d11_compositor.cpp - D3D12 compositor
openxr-api-layer/d3d12_compositor.cpp
Runtime services
- Graphics context
openxr-api-layer/logic/graphics_context.cpp
Other components
- OpenXR application
- OpenXR runtime
- Eye-tracking device
- User settings
Connections 20
- OpenXR application → API dispatch: calls API
- API dispatch → Layer dispatch: dispatches calls
- Layer dispatch → OpenXR runtime: forwards OpenXR
- Layer dispatch → Frame pipeline: manages frames
- Layer dispatch → Action manager: manages actions
- Layer dispatch → Gaze spaces: handles gaze spaces
- Layer dispatch → Swapchain interception: intercepts swapchains
- Layer dispatch → Layer composer: composes layers
- Configuration → User settings: reads settings
- Action manager → Eye tracker: injects gaze actions
- Gaze spaces → Eye tracker: queries gaze
- Eye tracker → Eye-tracking device: reads eye gaze
- Swapchain interception → Swapchain manager: tracks swapchains
- Layer composer → Compositor interface: requests composition
- Compositor interface → D3D11 compositor: selects backend
- Compositor interface → D3D12 compositor: selects backend
- D3D11 compositor → Graphics context: uses graphics context
- D3D12 compositor → Graphics context: uses graphics context
- View resolution → View geometry: uses view geometry
- FOV stabilization → View resolution: stabilizes view FOV