Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 57afaa96431ba8b77fe6e00b1158c5233838e665
https://github.com/WebKit/WebKit/commit/57afaa96431ba8b77fe6e00b1158c5233838e665
Author: Youenn Fablet <[email protected]>
Date: 2023-11-10 (Fri, 10 Nov 2023)
Changed paths:
M
Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h
M Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp
Log Message:
-----------
REGRESSION (iOS 17 Beta): The camera preview is with a wrong resolution for a
short time when the iOS User enables/disables the camera
https://bugs.webkit.org/show_bug.cgi?id=259364
rdar://112621697
Reviewed by Jer Noble.
The fencing mechanism to synchronize UIProcess and GPUProcess layering works
properly only on main thread.
We therefore need to process the WebProcess to GPUProcess message in main
thread and not in a queue.
We thus introduce a new GPUConnectionToWebProcess message that will be
processed in main thread.
We then get the SampleBufferDisplayLayer (via a lock) to call
updateSampleLayerBoundsAndPosition which synchronously updates the bounds.
*
Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(WebCore::LocalSampleBufferDisplayLayer::updateSampleLayerBoundsAndPosition):
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::updateSampleBufferDisplayLayerBoundsAndPosition):
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:
(WebKit::RemoteSampleBufferDisplayLayerManager::close):
(WebKit::RemoteSampleBufferDisplayLayerManager::dispatchMessage):
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
(WebKit::RemoteSampleBufferDisplayLayerManager::releaseLayer):
(WebKit::RemoteSampleBufferDisplayLayerManager::allowsExitUnderMemoryPressure
const):
(WebKit::RemoteSampleBufferDisplayLayerManager::updateSampleBufferDisplayLayerBoundsAndPosition):
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
* Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
(WebKit::SampleBufferDisplayLayer::updateBoundsAndPosition):
Canonical link: https://commits.webkit.org/270548@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes