Distributed Path-Traced VR

2024 · Master's thesis · Tampere University

A distributed rendering system that streamed remotely rendered VR frames to a standalone headset.

C++ · Vulkan · OpenXR · Monado · HEVC
Stereo path-traced Cornell box views rendered for a VR headset
Stereo views produced by the distributed path-traced VR rendering pipeline.

Overview

Developed at Tampere University, this project moved stereo path tracing from a standalone VR headset to a remote Linux GPU server while keeping tracking, decoding, and presentation on the headset.

Head pose was transported to an OpenXR/Monado rendering server, while rendered frames were hardware-encoded with HEVC and streamed back over UDP.

Highlights

  • Vulkan and OpenXR server-side rendering with headless Monado integration
  • NVENC HEVC hardware encoding
  • UDP pose and video transport
  • Android hardware decoding and OpenGL presentation
  • Up to 60 FPS for complex scenes at 1024 × 1024 per eye and 90 FPS for simpler scenes

Architecture

Pose uplink

  1. Headsetposition + rotation
  2. UDPdedicated pose port
  3. Monadosimulated device
  4. Vulkan serverstereo path tracing

Frame downlink

  1. Vulkan serverstereo frames
  2. NVENC / HEVChardware encode
  3. UDPWi-Fi 6 network
  4. MediaCodechardware decode
  5. HeadsetOpenGL display
Head pose travels to the renderer; compressed stereo frames travel back to the headset.

Performance

Measured with two NVIDIA RTX A6000 GPUs and an HTC Vive Focus 3 over Wi-Fi 6.

Measured stageTime
Server rendering at 60 FPS16 ms
Composition and encoding10 ms
Network transmissionat least 30 ms
Client decoding and rendering11 ms
Measured minimumat least 67 ms

This lower bound excludes sensor acquisition and headset display delay. Network transmission was the largest and most variable cost.

Architecture from the thesis

The logical data path and the physical test setup.

Thesis diagram showing the renderer and Monado on the server exchanging rendered frames and head pose with an Android OpenGL client
Thesis Figure 3.1. Monado separates the OpenXR renderer from client communication, so the renderer can be replaced independently.
Thesis diagram showing a multi-GPU server connected through a router over Wi-Fi 6 to a VR headset
Thesis Figure 4.1. The server renders remotely while a nearby router carries video and head-pose traffic to and from the headset.