Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 901e3d24e8892975a8c746b2f899326325c4b5db
https://github.com/WebKit/WebKit/commit/901e3d24e8892975a8c746b2f899326325c4b5db
Author: Dan Glastonbury <[email protected]>
Date: 2024-09-02 (Mon, 02 Sep 2024)
Changed paths:
M Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h
M Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp
M Source/WebCore/Modules/webxr/WebXRSession.cpp
M Source/WebCore/Modules/webxr/WebXRSession.h
M Source/WebCore/Modules/webxr/WebXRSystem.cpp
M Source/WebCore/Modules/webxr/WebXRSystem.h
M Source/WebCore/platform/graphics/transforms/TransformationMatrix.h
M Source/WebCore/platform/xr/PlatformXR.h
M Source/WebCore/platform/xr/openxr/PlatformXROpenXR.cpp
M Source/WebCore/platform/xr/openxr/PlatformXROpenXR.h
M Source/WebCore/testing/WebFakeXRDevice.cpp
M Source/WebCore/testing/WebFakeXRDevice.h
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Shared/XR/PlatformXR.serialization.in
M Source/WebKit/Shared/XR/XRDeviceProxy.cpp
M Source/WebKit/Shared/XR/XRDeviceProxy.h
M Source/WebKit/UIProcess/XR/PlatformXRCoordinator.h
M Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp
M Source/WebKit/UIProcess/XR/PlatformXRSystem.h
M Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in
M Source/WebKit/UIProcess/XR/ios/PlatformXRARKit.h
M Source/WebKit/UIProcess/XR/ios/PlatformXRARKit.mm
M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp
M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h
Log Message:
-----------
[WebXR] Pass depth buffers to PlatformXRCoordinator to be used for
reprojection
https://bugs.webkit.org/show_bug.cgi?id=278903
rdar://134998453
Reviewed by Mike Wyrzykowski.
For the PlatformXRCoordinator to make use of the contents of the depth buffer
from WebGL rendering to perform re-projection of frames when the page misses the
presentation epoch, the coordinator needs to know the current depth range, which
representations the mapping from the near/far planes to the range supported by
the depth buffer.
The depth range can be changed via the WebXR API and needs to be passes via
XRDevice to the coordinator. This information is passes along with the
requestFrame API when ever new XRRenderState is applied.
Additionally, the hack to clear the depth buffers to FLT_MIN has been removed
from WebXROpaqueFramebuffer. |requestDepth| member of
|PlatformXR::FrameData::LayerData| represents a request from the coordinator for
scene depth to be presented via the passed depth textures.
* Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.h:
* Source/WebCore/Modules/webxr/WebXROpaqueFramebufferCocoa.cpp:
(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::blitSharedToLayered):
* Source/WebCore/Modules/webxr/WebXRSession.cpp:
(WebCore::WebXRSession::applyPendingRenderState):
(WebCore::WebXRSession::requestFrameIfNeeded):
* Source/WebCore/Modules/webxr/WebXRSession.h:
* Source/WebCore/Modules/webxr/WebXRSystem.cpp:
(WebCore::WebXRSystem::DummyInlineDevice::requestFrame):
* Source/WebCore/Modules/webxr/WebXRSystem.h:
* Source/WebCore/platform/xr/PlatformXR.h:
* Source/WebCore/testing/WebFakeXRDevice.cpp:
(WebCore::SimulatedXRDevice::requestFrame):
* Source/WebCore/testing/WebFakeXRDevice.h:
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/XR/PlatformXR.serialization.in:
* Source/WebKit/Shared/XR/XRDeviceProxy.cpp:
(WebKit::XRDeviceProxy::requestFrame):
* Source/WebKit/Shared/XR/XRDeviceProxy.h:
* Source/WebKit/UIProcess/XR/PlatformXRCoordinator.h:
* Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp:
(WebKit::PlatformXRSystem::requestFrame):
* Source/WebKit/UIProcess/XR/PlatformXRSystem.h:
* Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in:
* Source/WebKit/UIProcess/XR/ios/PlatformXRARKit.h:
* Source/WebKit/UIProcess/XR/ios/PlatformXRARKit.mm:
(WebKit::ARKitCoordinator::scheduleAnimationFrame):
* Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.cpp:
(WebKit::PlatformXRSystemProxy::requestFrame):
* Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h:
Canonical link: https://commits.webkit.org/283077@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes