Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3c73508f5ba8bf4f6cdd58ce05d4dba5d9179793
https://github.com/WebKit/WebKit/commit/3c73508f5ba8bf4f6cdd58ce05d4dba5d9179793
Author: Dan Glastonbury <[email protected]>
Date: 2026-05-12 (Tue, 12 May 2026)
Changed paths:
M Source/WebCore/Modules/webxr/WebXRSession.cpp
Log Message:
-----------
[WebXR] Revert WebXRSession changes from 312788@main
https://bugs.webkit.org/show_bug.cgi?id=314623
rdar://176829186
Reviewed by Cameron McCormack.
312788@main moved applyPendingRenderState() from before the rendering block
to after it in WebXRSession::onFrame(), and moved inputSources->update()
to run unconditionally before the render block. These changes were made to
fix an OpenXR-specific crash involving swapchain acquire/release mismatches
when activeLayerHandles changed mid-frame.
The OpenXR author has confirmed these WebXRSession changes are no longer
required for OpenXR -- the OpenXR-side changes in that commit (snapshotting
active layers at beginFrame and filtering at endFrame) are sufficient to
prevent the crash without modifying the shared WebXRSession frame loop.
Reverting restores the original frame loop ordering:
- applyPendingRenderState() before frameShouldBeRendered() (step 7 before 6)
- inputSources->update() at step 6.4 inside the render block
This fixes first-frame rendering on visionOS where the deferred
applyPendingRenderState meant frameShouldBeRendered() would see a null
baseLayer and skip the entire render block.
* Source/WebCore/Modules/webxr/WebXRSession.cpp:
(WebCore::WebXRSession::applyPendingRenderState):
(WebCore::WebXRSession::onFrame):
(WebCore::WebXRSession::updateRequestDataFromActiveRenderState): Deleted.
* Source/WebCore/Modules/webxr/WebXRSession.h:
Canonical link: https://commits.webkit.org/313131@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications