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

Reply via email to