Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d589441f8297e31ec30e32196b3ac12d21154d98
https://github.com/WebKit/WebKit/commit/d589441f8297e31ec30e32196b3ac12d21154d98
Author: Sergio Villar Senin <[email protected]>
Date: 2026-01-21 (Wed, 21 Jan 2026)
Changed paths:
M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp
Log Message:
-----------
[OpenXR] The poses for local and viewer spaces are identical
https://bugs.webkit.org/show_bug.cgi?id=305842
Reviewed by Dan Glastonbury.
WebXR is reporting the same poses for both the local and viewer spaces.
That is generally wrong as the viewer space tracks the pose of the
viewer while the local space tracks the pose of the viewer at creation
time. It's easy to check the values in this page
https://immersive-web.github.io/webxr-samples/report/
The problem is that the OpenXR backend was not filling in the data
expected by WebXR in FrameData. In particular there were 2 mistakes:
1. the FrameData origin should store the location of the viewer in the
local reference space. We were passing and identity transform
instead.
2. the FrameData views should store the poses of the views in the viewer
reference space. We were passing the poses in the local reference
space.
The WebXR code then computes the poses of the views in the local space
by multiplying the transform of the origin by the transforms of each
view. This is now properly computed as the native origin of the viewer
space is the .origin field from FrameData and the native origin of the
local space is just the identity.
* Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp:
(WebKit::OpenXRCoordinator::populateFrameData):
Canonical link: https://commits.webkit.org/305928@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications