Title: [232931] trunk/Source
Revision
232931
Author
[email protected]
Date
2018-06-18 08:40:33 -0700 (Mon, 18 Jun 2018)

Log Message

[Threaded paintingEngine] Fix rendering glitches
https://bugs.webkit.org/show_bug.cgi?id=186764

Patch by Karl Leplat <[email protected]> on 2018-06-18
Reviewed by Žan Doberšek.

Source/WebCore:

* platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:
(Nicosia::PaintingEngineBasic::paint):
To keep backwards compatibility with no multi-threaded,
we call Nicosia::Buffer functions beginPainting() and completePainting().

Source/WebKit:

* Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStoreTile::swapBuffers):
We call Nicosia::Buffer function waitUntilPaintingComplete()
in order to synchronize of using Nicosia:buffer between MainThread
and ThreadedCompositor.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (232930 => 232931)


--- trunk/Source/WebCore/ChangeLog	2018-06-18 14:00:02 UTC (rev 232930)
+++ trunk/Source/WebCore/ChangeLog	2018-06-18 15:40:33 UTC (rev 232931)
@@ -1,3 +1,16 @@
+2018-06-18  Karl Leplat  <[email protected]>
+
+        [Threaded paintingEngine] Fix rendering glitches
+        https://bugs.webkit.org/show_bug.cgi?id=186764
+
+        Reviewed by Žan Doberšek.
+
+        * platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:
+        (Nicosia::PaintingEngineBasic::paint):
+        To keep backwards compatibility with no multi-threaded,
+        we call Nicosia::Buffer functions beginPainting() and completePainting().
+
+
 2018-06-18  Tomas Popela  <[email protected]>
 
         Properly check the sscanf return valua

Modified: trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp (232930 => 232931)


--- trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp	2018-06-18 14:00:02 UTC (rev 232930)
+++ trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp	2018-06-18 15:40:33 UTC (rev 232931)
@@ -43,6 +43,8 @@
 
 bool PaintingEngineBasic::paint(GraphicsLayer& layer, Ref<Buffer>&& buffer, const IntRect& sourceRect, const IntRect& mappedSourceRect, const IntRect& targetRect, float contentsScale)
 {
+    buffer->beginPainting();
+
     bool supportsAlpha = buffer->supportsAlpha();
     PaintingContext::paint(buffer,
         [&layer, sourceRect, mappedSourceRect, targetRect, contentsScale, supportsAlpha]
@@ -65,6 +67,9 @@
 
             context.restore();
         });
+
+    buffer->completePainting();
+
     return true;
 }
 

Modified: trunk/Source/WebKit/ChangeLog (232930 => 232931)


--- trunk/Source/WebKit/ChangeLog	2018-06-18 14:00:02 UTC (rev 232930)
+++ trunk/Source/WebKit/ChangeLog	2018-06-18 15:40:33 UTC (rev 232931)
@@ -1,3 +1,17 @@
+2018-06-18  Karl Leplat  <[email protected]>
+
+        [Threaded paintingEngine] Fix rendering glitches
+        https://bugs.webkit.org/show_bug.cgi?id=186764
+
+        Reviewed by Žan Doberšek.
+
+        * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
+        (WebKit::CoordinatedBackingStoreTile::swapBuffers):
+        We call Nicosia::Buffer function waitUntilPaintingComplete()
+        in order to synchronize of using Nicosia:buffer between MainThread
+        and ThreadedCompositor.
+
+
 2018-06-17  Chris Dumez  <[email protected]>
 
         Crash under SuspendedPageProxy::~SuspendedPageProxy()

Modified: trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp (232930 => 232931)


--- trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp	2018-06-18 14:00:02 UTC (rev 232930)
+++ trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp	2018-06-18 15:40:33 UTC (rev 232931)
@@ -47,6 +47,7 @@
     } else if (m_buffer->supportsAlpha() == m_texture->isOpaque())
         m_texture->reset(m_tileRect.size(), m_buffer->supportsAlpha());
 
+    m_buffer->waitUntilPaintingComplete();
     m_texture->updateContents(m_buffer->data(), m_sourceRect, m_bufferOffset, m_buffer->stride());
     m_buffer = nullptr;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to