Skip to content

Releases: elliotttate/OpenXR-Simulator

v1.3.0 - D3D12 & OpenGL Support

18 Mar 02:12

Choose a tag to compare

What's New

Multi-Graphics API Support

  • D3D12 graphics binding (XR_KHR_D3D12_enable) — full support for Direct3D 12 applications
  • OpenGL graphics binding (XR_KHR_opengl_enable) — full support for OpenGL applications
  • GDI-based D3D12 preview — renders via offscreen RT + CPU readback + GDI StretchDIBits, avoiding DXGI Present hook conflicts with Steam overlay and UEVR

D3D12 Improvements

  • Cross-queue synchronization between game and preview command queues
  • Proper depth buffer handling with typeless formats and ALLOW_DEPTH_STENCIL
  • Mutable format swapchain support (typeless backing for sRGB/non-sRGB views)
  • Optimized clear values for render targets and depth buffers
  • Copy region clipping to prevent out-of-bounds texture copies
  • Device removed detection for diagnostics
  • Reentrance guard in xrEndFrame to prevent stack overflow from hook recursion

Controller Input Emulation

  • Basic controller input emulation for VR interaction testing
  • Enhanced screenshot capture across all graphics backends (D3D11, D3D12, OpenGL)

Bug Fixes

  • Write frame status before Present to avoid blocking on D3D12
  • Always write first frame status for immediate diagnostics
  • Reset swapchain image states to COMMON on release for correct D3D12 state tracking

Supported Graphics APIs

API Binding Extension Status
Direct3D 11 XR_KHR_D3D11_enable ✅ Supported
Direct3D 12 XR_KHR_D3D12_enable ✅ Supported
OpenGL XR_KHR_opengl_enable ✅ Supported
Vulkan XR_KHR_vulkan_enable 🗺️ Planned

v1.2.0 - UI Enhancements & MCP Integration

18 Jan 19:39

Choose a tag to compare

What's New

UI Enhancements

  • Dark theme with modern styling
  • Menu bar with View, Zoom, FOV, Tools, and Help menus
  • Keyboard shortcuts for all major functions
  • Mouse wheel zoom support

View Controls

  • Switch between both eyes, left eye only, or right eye only
  • Multiple display layouts: side-by-side, over/under, anaglyph 3D
  • Adjustable zoom levels (25%, 50%, 75%, 100%, fit-to-window)
  • FOV presets (70°, 90°, 110°)

MCP Integration

  • Screenshot capture functionality
  • Runtime status reporting via JSON
  • Head pose control commands
  • Python MCP server included for external tool integration

Build Improvements

  • Updated CMakeLists.txt with improved configuration
  • Added D3D12, dwmapi, and uxtheme library support
  • Better output directory handling

Keyboard Shortcuts

  • B - Both eyes view
  • L/R - Left/Right eye only
  • F - Fit to window
  • 1-4 - Zoom presets
  • 5-7 - FOV presets
  • G - Toggle full render
  • F1 - Controls help
  • F3 - Toggle stats
  • F12 - Screenshot

Full Changelog: v1.1.0...v1.2.0

v1.1.0 - Enhanced Movement Controls

10 Aug 18:55

Choose a tag to compare

What's Changed

Improvements

  • Fixed movement direction with mouse + WASD controls
  • Implemented proper quaternion-based rotation for movement vectors
  • Fixed mouse yaw direction for natural camera control
  • WASD movement now correctly follows head orientation including pitch

Technical Details

  • Movement vectors are properly transformed by head rotation quaternion
  • Mouse sensitivity provides smooth camera control
  • All movement is now relative to the current view direction

Full Changelog: v1.0.0...v1.1.0

OpenXR Simulator v1.0.0

09 Aug 22:18

Choose a tag to compare

🎉 Initial Release

OpenXR Simulator is a lightweight OpenXR runtime that enables VR applications to run in a desktop window for development and testing without requiring a physical VR headset.

✨ Features

  • Desktop VR Preview - Run VR applications in a resizable desktop window with side-by-side stereo view
  • Mouse & Keyboard Controls - Navigate the virtual space using standard input devices
  • Proper sRGB Handling - Automatic gamma correction for accurate color reproduction
  • Unity Compatible - Fully tested with Unity's OpenXR plugin
  • Minimal Dependencies - Only requires Windows and DirectX 11
  • Easy Setup - Simple PowerShell scripts for registration/unregistration

📦 Installation

  1. Download OpenXR-Simulator-v1.0.0-win64.zip
  2. Extract to your preferred location
  3. Run PowerShell as Administrator
  4. Navigate to the scripts folder
  5. Run .\register-runtime.ps1

🎮 Controls

  • Mouse: Look around (hold right-click)
  • WASD: Move forward/backward/strafe
  • Q/E: Move up/down
  • Shift: Move faster
  • ESC: Release mouse capture

📋 Requirements

  • Windows 10/11 (64-bit)
  • DirectX 11 compatible GPU

🐛 Known Issues

  • Limited to D3D11 applications (no OpenGL/Vulkan support yet)
  • No hand tracking or haptic feedback
  • Basic action system implementation

📝 Notes

This is a development tool designed for testing VR applications without a physical headset. For production VR experiences, use a proper VR headset and runtime.


Full Changelog: Initial release