GSoC 2019: VR support through OpenXR - Weekly Reports

Week 10 (July 29 - August 2)

Short week, I did what I planned to do:

  • Continued work for VR rendering on a separate thread (temp-vr-draw-thread branch):
    • Keep single context alive on the thread (7a711e133c). Should improve performance.
    • Submitted patch to manage GPU_matrix stacks per GPUContext (D5405). This is needed for thread save GPU_matrix usage.
    • Fix all objects hidden (7922bd26a2)
    • With the branch I now get ~54 FPS in the classroom scene (~43 FPS in soc-2019-openxr)
  • Documented a couple of further things we can do to improve performance and get the branch ready for a merge: GSoC 2019: Core Support of Virtual Reality Headsets through OpenXR.
  • Updated OpenXR to version 1.0 (e8f66ff060, 22966f4d35). Quite some build system related stuff changed, so this took a bit of effort.
  • Added sources for OpenXR core API validation layer (40db778de3).
  • Tried to get the validation layer to work on Windows, turns out there’s a bug in the OpenXR loader breaking Windows support for API layers. See https://github.com/KhronosGroup/OpenXR-SDK-Source/issues/89.
  • Checked with Monado devs on why the Monado runtime doesn’t work for me, suspicion is that it’s a Optimus limitation on Linux.

Next Week

Need to check with Dalai (who’s at Siggraph currently), if I should prepare the branch for a merge yet. I’d rather spend more time on threaded drawing. This may take a few more days to complete. Besides that, I’ve listed possible tasks for the remaining GSoC time here: GSoC 2019: Core Support of Virtual Reality Headsets through OpenXR.

5 Likes