Title: [292986] branches/safari-613-branch/Source/WebKit
Revision
292986
Author
alanc...@apple.com
Date
2022-04-18 17:49:26 -0700 (Mon, 18 Apr 2022)

Log Message

Cherry-pick r292319. rdar://problem/89916360

    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):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292319 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-613-branch/Source/WebKit/ChangeLog (292985 => 292986)


--- branches/safari-613-branch/Source/WebKit/ChangeLog	2022-04-19 00:49:23 UTC (rev 292985)
+++ branches/safari-613-branch/Source/WebKit/ChangeLog	2022-04-19 00:49:26 UTC (rev 292986)
@@ -1,3 +1,34 @@
+2022-04-18  Kocsen Chung  <kocsen_ch...@apple.com>
+
+        Cherry-pick r292319. rdar://problem/89916360
+
+    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):
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292319 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    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-15  Alan Coon  <alanc...@apple.com>
 
         Cherry-pick r292431. rdar://problem/90677955

Modified: branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp (292985 => 292986)


--- branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp	2022-04-19 00:49:23 UTC (rev 292985)
+++ branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp	2022-04-19 00:49:26 UTC (rev 292986)
@@ -64,6 +64,11 @@
         renderingBackend->streamConnection().stopReceivingMessages(Messages::RemoteDisplayListRecorder::messageReceiverName(), m_imageBufferIdentifier.object().toUInt64());
 }
 
+void RemoteDisplayListRecorder::clearImageBufferReference()
+{
+    m_imageBuffer.clear();
+}
+
 void RemoteDisplayListRecorder::save()
 {
     handleItem(DisplayList::Save());

Modified: branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h (292985 => 292986)


--- branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h	2022-04-19 00:49:23 UTC (rev 292985)
+++ branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h	2022-04-19 00:49:26 UTC (rev 292986)
@@ -56,6 +56,7 @@
     }
 
     void stopListeningForIPC();
+    void clearImageBufferReference();
 
     void save();
     void restore();

Modified: branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp (292985 => 292986)


--- branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp	2022-04-19 00:49:23 UTC (rev 292985)
+++ branches/safari-613-branch/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp	2022-04-19 00:49:26 UTC (rev 292986)
@@ -405,12 +405,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);
 }
 
 void RemoteRenderingBackend::finalizeRenderingUpdate(RenderingUpdateID renderingUpdateID)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to