VR Support through OpenXR - TODO's
This task is to list open ToDo's for the Core Support of Virtual Reality Headsets through OpenXR GSoC project. Most of the items here should be tackled as part of the GSoC coding period.
New features to be added are not listed here.
Rendering
- Dark VR session rendering on Windows Mixed Reality runtime (rB5350015d51)
- Lighting changes with head movements (rB091cc94379)
- Head position seems to move upon rolling view (rBfc31be5ab0)
- OpenGL support is not done (rB3a4034a741)
- OpenGL swap calls cause issues with frame syncing, throtteling drawing in some cases (rB62bbd2e37d).
- Use a separate thread VR rendering. OpenXR blocks threads for frame rate synchronization, which probably makes other rendering lag a bit. This way we can also keep a single OpenGL context alive on this thread, which avoids expensive context switches. -- In progress, see temp-vr-draw-thread branch.
- Remove limit of one shared DirectX/OpenGL resource per DirectX context. Will also fix constant re-registration of the shared resource and improve performance. (rBfec7ac7c51)
General Stability
- Memory leak (rB55362436d9)
-
Monado OpenXR runtime crashes at swapchain creation-- (Appears to be a limitation of NVidia optimus on Linux. Monado team is checking.)
Build System
-
Automatically set environment variables required to find API-layers-- The OpenXR SDK repository we currently (and preferably) use doesn't include the API-layers. For now users will have to setup the layers themelves if they want to use them (it's a debug feature only). -
More generic CMake variables (e.g. autodetect OpenXR version)-- Not needed after recent refactor of OpenXR related build system parts. - Pre-master-merge: Remove bundled OpenXR sources support (rB0dd3f3925b)
Miscellaneous
- Remove support for non-OpenGL windows? Useful for testing, but unused by now (rB873223f38d).