Develop

Showdown sample overview

Updated: May 11, 2026

Overview

The Showdown sample is a port of a PC VR cinematic to Quest, achieving 90 FPS via Application SpaceWarp. It includes a PSO cache workflow (GeneratePSOCache.bat), a runtime render settings menu, shipping build logging via DebugLog using __android_log_print, and features a New York City street scene with robots. The project requires the Oculus fork of Unreal Engine 5.6.

What you will learn

  • Application SpaceWarp for frame rate optimization
  • PSO (Pipeline State Object) cache workflow
  • Runtime render settings adjustment
  • Shipping build logging on Android
  • PC VR to mobile VR porting techniques

Requirements

  • Meta Quest 2, Quest 3, or Quest 3S
  • Oculus fork of Unreal Engine 5.6
  • OculusXR plugin

Get started

  1. Clone the repository.
  2. Open the project using the Oculus fork of Unreal Engine 5.6.
  3. Run GeneratePSOCache.bat to build the PSO cache.
  4. Deploy to your Quest device.
  5. Use the runtime render settings menu to adjust quality.

Explore the sample

File / SceneWhat it demonstratesKey concepts
New York City street scene
Full cinematic experience
Robots, environmental detail
GeneratePSOCache.bat
PSO cache generation
Pipeline state pre-compilation
Runtime settings menu
Live quality adjustment
Render setting toggles
Application SpaceWarp config
Frame rate doubling
vr.SupportMobileSpaceWarp=True
DebugLog system
Shipping build logging
__android_log_print integration

Runtime behavior

The sample plays a New York City street scene cinematic with robots at 90 FPS on Quest hardware. Application SpaceWarp synthesizes intermediate frames, effectively doubling the perceived frame rate. The runtime settings menu allows toggling render features to observe performance impact. Shipping builds retain logging capability through the DebugLog system using __android_log_print.

Key concepts

Application SpaceWarp

Application SpaceWarp synthesizes intermediate frames to achieve 90 FPS while the application renders at half rate. Enable it with:
vr.SupportMobileSpaceWarp=True

PSO cache workflow

The PSO cache pre-compiles pipeline states to avoid runtime shader compilation hitches:
GeneratePSOCache.bat
This generates a cache file that ships with the application, ensuring smooth rendering from first frame.

Shipping build logging

For debugging shipping builds on Android, the sample uses a custom DebugLog that wraps __android_log_print:
__android_log_print(ANDROID_LOG_INFO, "Showdown", "Message: %s", *Message);

Extend the sample

  • Profile with and without Application SpaceWarp to measure gains
  • Add additional PSO cache entries for new materials
  • Implement dynamic quality scaling based on frame time
  • Port additional PC VR content using the same workflow