Title: [292319] trunk/Source/WebKit
- Revision
- 292319
- Author
- hey...@apple.com
- Date
- 2022-04-04 14:38:05 -0700 (Mon, 04 Apr 2022)
Log Message
Remove display list map entry before remote resource
https://bugs.webkit.org/show_bug.cgi?id=238764
Reviewed by Simon Fraser.
* GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::clearImageBufferReference):
* GPUProcess/graphics/RemoteDisplayListRecorder.h:
* GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (292318 => 292319)
--- trunk/Source/WebKit/ChangeLog 2022-04-04 21:30:31 UTC (rev 292318)
+++ trunk/Source/WebKit/ChangeLog 2022-04-04 21:38:05 UTC (rev 292319)
@@ -1,3 +1,16 @@
+2022-04-04 Cameron McCormack <hey...@apple.com>
+
+ Remove display list map entry before remote resource
+ https://bugs.webkit.org/show_bug.cgi?id=238764
+
+ Reviewed by Simon Fraser.
+
+ * GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
+ (WebKit::RemoteDisplayListRecorder::clearImageBufferReference):
+ * GPUProcess/graphics/RemoteDisplayListRecorder.h:
+ * GPUProcess/graphics/RemoteRenderingBackend.cpp:
+ (WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):
+
2022-04-04 Wenson Hsieh <wenson_hs...@apple.com>
[macOS] Add helper methods to install and uninstall VKCImageAnalysisOverlayView
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp (292318 => 292319)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp 2022-04-04 21:30:31 UTC (rev 292318)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp 2022-04-04 21:38:05 UTC (rev 292319)
@@ -68,6 +68,11 @@
renderingBackend->streamConnection().stopReceivingMessages(Messages::RemoteDisplayListRecorder::messageReceiverName(), m_imageBufferIdentifier.object().toUInt64());
}
+void RemoteDisplayListRecorder::clearImageBufferReference()
+{
+ m_imageBuffer.clear();
+}
+
void RemoteDisplayListRecorder::save()
{
handleItem(DisplayList::Save());
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h (292318 => 292319)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h 2022-04-04 21:30:31 UTC (rev 292318)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h 2022-04-04 21:38:05 UTC (rev 292319)
@@ -56,6 +56,7 @@
}
void stopListeningForIPC();
+ void clearImageBufferReference();
void save();
void restore();
Modified: trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp (292318 => 292319)
--- trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2022-04-04 21:30:31 UTC (rev 292318)
+++ trunk/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp 2022-04-04 21:38:05 UTC (rev 292319)
@@ -383,12 +383,14 @@
void RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier(QualifiedRenderingResourceIdentifier renderingResourceIdentifier)
{
ASSERT(!RunLoop::isMain());
+ {
+ Locker locker { m_remoteDisplayListsLock };
+ if (auto remoteDisplayList = m_remoteDisplayLists.take(renderingResourceIdentifier))
+ remoteDisplayList->clearImageBufferReference();
+ }
auto success = m_remoteResourceCache.releaseRemoteResource(renderingResourceIdentifier);
MESSAGE_CHECK(success, "Resource is being released before being cached.");
updateRenderingResourceRequest();
-
- Locker locker { m_remoteDisplayListsLock };
- m_remoteDisplayLists.remove(renderingResourceIdentifier);
}
static std::optional<ImageBufferBackendHandle> handleFromBuffer(WebCore::ImageBuffer& buffer)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes