Docs: measured frame rate and controller input on the Frame

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
saphidandClaude Opus 5.5 committed 2026-09-27 16:54:35 +10:00
1 parent f8d07ac177
commit ec770bb520
2 files changed
+25 -2

No files matched your search

+3 -2
View File
@@ -40,8 +40,8 @@ SteamVR 2.17.10) with Chromium **156.0.8071.0**, built for arm64:
| [WebXR Samples](https://immersive-web.github.io/webxr-samples/) Immersive VR Session | shows its scene in the headset |
| three.js [stereo 360 video](https://threejs.org/examples/webxr_vr_video.html) | plays in 3D |
| Launch from the Steam library | opens as its own panel, like any app; WebXR renders in the headset |
| Controller and hand input inside WebXR pages | not tested yet |
| Frame rate | not measured (looks smooth) |
| Controllers inside WebXR pages | tracked pose every frame; squeeze events and button state reach the page (trigger, thumbstick and left controller not tested) |
| Frame rate | 72 fps, every frame 13.9–14 ms over 16 s (simple scene); SteamVR dropped frames only at startup |
This is an unofficial, experimental build. See [Limitations](#limitations)
before you use it for anything other than VR sites.
@@ -137,6 +137,7 @@ page directly.
passwords you save are stored unencrypted in `~/.config/chromium-xr`.
- **No automatic updates.** It won't get Chromium security fixes until you
rebuild it.
- **No controller vibration.** SteamVR reports no haptic actuators to the page.
- **No DRM video.** There's no Widevine, so paid streaming services that
need it won't play.
- **One window at a time per profile.** If Chromium XR is already open,
+22
View File
@@ -69,6 +69,28 @@ isn't needed.
`visibilityState: "hidden"`, and only the first frame runs. Put the headset
on to see it.
## Input and frame rate (2026-09-27)
Measured with a session that clears to red, with `hand-tracking` and
`local-floor` requested:
- **Frame rate:** 72 fps. Over 16.6 s the median frame interval was 13.9 ms,
p99 14 ms and max 14 ms, with no frame longer than 1.5× the median.
SteamVR's `vrcmd --stats` counted 2,940 submits, 4 dropped frames (all at
startup) and 2 reprojected.
- **Controllers:** the right controller appears as a `tracked-pointer` input
source with profiles `oculus-touch` and
`generic-trigger-squeeze-thumbstick`, an `xr-standard` gamepad (7 buttons,
4 axes), a grip space, and a 25-joint `hand`. Its target-ray and grip
poses were available on every frame, and not emulated. A physical squeeze
produced `squeezestart`/`squeeze` events and set button 1 as pressed.
- **Not covered:** trigger (`select`), thumbstick axes, face buttons, the left
controller (not connected during the test) and bare-hand tracking.
- **Haptics:** `gamepad.hapticActuators` is empty, so pages can't vibrate
the controllers.
- Requesting `hand-tracking` makes Chromium ask **Allow hand tracking?** in
the browser panel before the session starts.
## Graphics
Chromium's GPU process uses ANGLE on OpenGL, which runs on zink over the