[webkit-changes] [WebKit/WebKit] e20379: Corrupt/missing tile content on tab switch.
mattwoodrow
noreply at github.com
Wed Jan 24 22:38:06 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e203798dcce88cf721d6c2061ca00a63b9811c3d
https://github.com/WebKit/WebKit/commit/e203798dcce88cf721d6c2061ca00a63b9811c3d
Author: Matt Woodrow <mattwoodrow at apple.com>
Date: 2024-01-24 (Wed, 24 Jan 2024)
Changed paths:
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.h
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.h
M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.mm
M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h
Log Message:
-----------
Corrupt/missing tile content on tab switch.
https://bugs.webkit.org/show_bug.cgi?id=268025
<rdar://121488303>
Reviewed by Simon Fraser.
Creating a flusher for a RemoteLayerBackingStore now waits for backend handles to
be delivered as well as flushing any drawing. We need to call this even when the dirty
region is empty, so that we get handles delivered.
Adds an enum to describe what we want to wait for, so that can avoid flushing the drawing
(or creating a flusher entirely) if no drawing commands have been issued.
https://bugs.webkit.org/show_bug.cgi?id=267749 (PR #22958) adds a test that will catch this.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::paintContents):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm:
(WebKit::RemoteLayerWithInProcessRenderingBackingStore::createFlusher):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStore.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStore::createFlusher):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.cpp:
(WebKit::RemoteImageBufferSetProxyFlushFence::create):
(WebKit::RemoteImageBufferSetProxyFlushFence::waitFor):
(WebKit::RemoteImageBufferSetProxyFlushFence::tryTakeEvent):
(WebKit::RemoteImageBufferSetProxyFlushFence::RemoteImageBufferSetProxyFlushFence):
(WebKit::RemoteImageBufferSetProxy::flushFrontBufferAsync):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferSetProxy.h:
Canonical link: https://commits.webkit.org/273475@main
More information about the webkit-changes
mailing list