[webkit-changes] [WebKit/WebKit] 57afaa: REGRESSION (iOS 17 Beta): The camera preview is wi...
youennf
noreply at github.com
Fri Nov 10 10:30:05 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 57afaa96431ba8b77fe6e00b1158c5233838e665
https://github.com/WebKit/WebKit/commit/57afaa96431ba8b77fe6e00b1158c5233838e665
Author: Youenn Fablet <youennf at gmail.com>
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
More information about the webkit-changes
mailing list